c# 运算符转换

来源:百度知道 编辑:UC知道 时间:2024/05/14 03:25:46
using System;

using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
try
{
byte b=3;
ConvertObject d= (ConvertObject)b;

}
catch (System.Exception e)
{
System.Console.WriteLine("{0}程序异常.",e);
}
Console.ReadLine();
}
}
struct ConvertObject
{
byte value;
public ConvertObject(byte value)
{
if (value > 9)
{
throw new System.ArgumentException();

}
this.value = value;
}
}
public static explicit operator ConvertObject(byte b)
{

public static explicit operator ConvertObject(byte b)
{
ConvertObject d =new ConvertObject(b);
System.Console.WriteLine("已经转换");
return d;
}
这段代码直接写在了命名空间下面。。。这是不行的。。。
你把他放到ConvertObject这个结构的定义里面去就可以了
就这样:
struct ConvertObject
{
byte value;
public ConvertObject(byte value)
{
if (value > 9)
{
throw new System.ArgumentException();

}
this.value = value;
}
public static explicit operator ConvertObject(byte b)
{
ConvertObject d = new ConvertObject(b);
System.Console.WriteLine("已经转换");
return d;
}
}

不能在命名空间下面写方法等。只能在类里面写。

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleAppl