.net 访问泛型类的静态属性?
我对所有.net 访问泛型类的静态属性?,.net,generics,.net,Generics,我对所有Foos成员使用Height。像这样 public class Foo<T> { public static int FoosHeight; } public partial class Form1 : Form { public Form1() { InitializeComponent(); Foo<???>.FoosHeight = 50; // DO I Set "object" here?
Foo
s成员使用Height
。像这样
public class Foo<T>
{
public static int FoosHeight;
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Foo<???>.FoosHeight = 50; // DO I Set "object" here?
}
}
公共类Foo
{
公共空间;
}
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
Foo.FoosHeight=50;//我在这里设置“object”吗?
}
}
VB.NET中也存在同样的情况。您必须在其中放入一些泛型类型参数。也就是说,我有时会使用某种继承方案来获得此功能,而不必输入泛型类型参数
public class Foo
{
public static int FoosHeight;
}
public class Foo<T> : Foo
{
// whatever
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Foo.FoosHeight = 50; // DO I Set "object" here?
}
}
公共类Foo
{
公共空间;
}
公开课Foo:Foo
{
//随便
}
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
Foo.FoosHeight=50;//我在这里设置“object”吗?
}
}
这就是说,无论传入
Foo
的泛型类型参数是什么,这都将保持相同的FoosHeight。如果希望每个版本的Foo
都有一个不同的值,则必须选择要放入该类型参数的类型,并忘记继承方案 每个特定泛型都有自己的类型,因此有自己的静态变量。因此,Foo
将具有与Foo
不同的静态高度成员。如果您希望在所有特定的Foo
类型之间共享,那么您需要在其他地方实现它
如果您确实只想设置
Foo
类型的值,那么只需要指定一个类型,例如
Foo<int>.FoosHeight = 50;
FooHelper与Foo没有正式关系。你的眼睛怎么了?我想Foo也会有同样的情况,我的意思是Foo与Foothat是正确的。它是类型系统中的另一个实体。是的,它应该。相同的总体思路,只需在VB.NET中重写即可。任何在线代码转换器都应该做到这一点。
Foo<Bar>.FoosHeight = 50;
FooHelper.FoosHeight = 50;