110,566
社区成员
发帖
与我相关
我的任务
分享
using System;
namespace Test
{
[Serializable]
class A
{
object _item;
// A的构造器参数为值类型、引用类型
// 包括未知的自定义类型,这些类型都允许序列化
public A(object o)
{
_item = o;
}
public object Value
{
get { return _item; }
}
}
class Program
{
static void Main(string[] args)
{
A a = new A(32);
int i = a.Value;// 这句报错,无法隐式转换
a = new A("abc");
string s = a.Value;
a = new A(new A("abc"));
A b = a.Value; // 除了显式转换,再没有其他方法拆箱了吗?
// 问题:
// 使用 _item.GetType() 返回的 Type 对象作为参数
// 给 Class A 设计一个方法
// 使 Main() 里的变量能得到 _item 的值
// 不允许根据 _item.GetType() 给每个类型单独定义方法等成员
// 不允许指针等不安全代码
// Main()的代码里除了声明变量以外,不可以出现类型关键字,更不可以出现<int>等泛型代码
}
}
}
public static implicit operator int(A a)
{
return Convert.ToInt32(a._item);
}
//然后在main中, 可以这样用 int i = a;