C# 泛型怎么调用类型T 的实例中的东西
C# 泛型如何调用类型T 的实例中的东西
------解决方案--------------------
http://www.cnblogs.com/jams742003/articles/1273358.html
http://birdshover.cnblogs.com/articles/392127.html
看看泛型的使用;
------解决方案--------------------
类似于定义 public class ABC<T> where T:Form
但是这样定义,你一定会觉得“多此一举,画蛇添足”了。
确实是这样!但是你既然相当然地确定 T 就是定义了 myNotification,你又怎么可能不确定 T 具有什么父类呢?
不要因为“泛型”这个词儿显得高大上似地,就滥用它。想明白你要写的这个 T 需要什么设计尺度吧。
------解决方案--------------------
晕。你的需求和泛型根本没关系。
如果你很多窗体都要用Form1,你可以把它写在基类中。
如果你要避免反射访问类型的成员,也可以这么写:
dynamic d = obj;
d.XXX(这里可以随便写) = xxx
------解决方案--------------------
或者使用楼上的
T tempForm;
public ABC(T input)
{
tempForm=input
dynamic aa= tempform;
aa.xxx
}
------解决方案--------------------
是interface登场时候了。
不过看着楼主写代码觉得好神奇,不和你想做什么,
public class ABC<T>
{
T tempForm;
public ABC(T input)
{
tempForm=input
}
public void solve ()
{
tempForm.myNotification.Message="OK"; //myNotification是我写的某个类的实例,Message是它的属性,
//可是编译器 提示T中不包含myNotification的含义,该怎么弄。
}
}
窗口Load事件中这样子调用
{
public Notification myNotification;
ABC myABC<Form1>=new myABC<Form1> (this)
}
------解决方案--------------------
http://www.cnblogs.com/jams742003/articles/1273358.html
http://birdshover.cnblogs.com/articles/392127.html
看看泛型的使用;
------解决方案--------------------
类似于定义 public class ABC<T> where T:Form
但是这样定义,你一定会觉得“多此一举,画蛇添足”了。
确实是这样!但是你既然相当然地确定 T 就是定义了 myNotification,你又怎么可能不确定 T 具有什么父类呢?
不要因为“泛型”这个词儿显得高大上似地,就滥用它。想明白你要写的这个 T 需要什么设计尺度吧。
------解决方案--------------------
晕。你的需求和泛型根本没关系。
如果你很多窗体都要用Form1,你可以把它写在基类中。
如果你要避免反射访问类型的成员,也可以这么写:
dynamic d = obj;
d.XXX(这里可以随便写) = xxx
------解决方案--------------------
或者使用楼上的
T tempForm;
public ABC(T input)
{
tempForm=input
dynamic aa= tempform;
aa.xxx
}
------解决方案--------------------
是interface登场时候了。
不过看着楼主写代码觉得好神奇,不和你想做什么,