类A 实例a= 对象X as 类A;
如果 类A 是动态变化的,那么实现上面相同的功能,上面的式子该怎么写呢?
谢谢
这是一个典型的应该通过范型编程解决的需求。
public class TemplateFuncs<T> where T:class
{
public static T Func1(Object x)
{
T a = x as T;
return a;
}
}
使用as 表达式要注意的是,不能直接引用转换后的对象引用,因为有可能转换失败。
string test = "模板函数实现";
string retRef = TemplateFuncs<string>.Func1(test);
if (null == retRef)
{
Console.WriteLine("as 语句类型转换为string对象失败!");
}
System.IO.TextWriter retRef2 = TemplateFuncs<System.IO.TextWriter>.Func1(test);
if (null == retRef2)
{
Console.WriteLine("as 语句类型转换为TextWriter对象失败!");
}
如果熟悉C++的程序员,看到C#中的as表达式,很自然会想到syntax_cast<>动态转型。
变化的类型,.net 没有变化的类型吧。最多只是一些匿名的类型。至于动态类型也只是。制定了类型之后就不会有变化了的。
明白,非常感谢。
.net 4.0以后是可以的
知道了,非常感谢