C#的基础问题 高手请帮忙 急 急 急
请问:C#中反射 泛型都是抽象的 那谁给它们提供实现呢 难道不需要实现吗?是语言编译器提供吗?
谢谢 --------------------编程问答-------------------- 这个问题问得有些深。我觉得是当调用 CreateInstance的时候,编译器会自动执行对应类的构造方法。
泛型的问题,当你用确定的类型调用的时候,自然就有确定的类型了,可能编译器会自动重新按照确定的类型生成一个新的此方法。
不一定正确,个人理解。 --------------------编程问答-------------------- 反射2楼的解释不错,泛型的问题我看过一些资料是说.net的泛型是有个标志的,操作的时候检查这个标志,如果有标志就不用强制转换.Java的泛型仍然要强制类型转换 --------------------编程问答-------------------- 范型的实现是具体一个类完成的。在定义范型的时候,需要指定一个类型,这个类型表示了某一种具体的类型。
但是如果在你的范型里面需要调用这个抽象的类型的方法的时候,那么这个所谓抽象的类型就不那么抽象了。
比如如下的代码:
class OneClass<T>
{
public class DoIt(T cTheT)
{
cTheT.DoIt();
}
}
这时可以认为T是一个接口或者父类,其中包含了虚方法DoIt。在C#的范型中有where关键字,当你使用了这个关
键字后,虽然具体的类型还是未知或者抽象的,但是你至少可以知道where限定的那些方法是那个抽象的类实现的
是可以直接调用的。从这个角度来说也不是很抽象。
反射个人认为不是很抽象,也就是后期邦定而已,这个技术由来已久,在解释型语言中很常见。
补充:.NET技术 , C#