我Height为所有Foo的成员使用了一个.像这样
public class Foo<T>
{
public static int FoosHeight;
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Foo<???>.FoosHeight = 50; // DO I Set "object" here?
}
}
Run Code Online (Sandbox Code Playgroud)
VB.NET也是如此.
Dav*_*ton 13
你必须在那里放一些泛型类型参数.话虽这么说,我有时会使用某种继承方案来获得此功能,而无需输入泛型类型参数.
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?
}
}
Run Code Online (Sandbox Code Playgroud)
话虽这么说,无论传入的泛型类型参数如何,这都将保持相同的FoosHeight Foo<T>.如果你想为每个版本提供不同的值Foo<T>,你必须选择一个类型来放入那个类型参数,并忘记继承方案.
您需要指定类型,例如
Foo<int>.FoosHeight = 50;
Run Code Online (Sandbox Code Playgroud)
要么
Foo<Bar>.FoosHeight = 50;
Run Code Online (Sandbox Code Playgroud)
但每个都是分开的. Foo<int>.FoosHeight与...无关Foo<Bar>.FoosHeight.它们实际上是两个独立的类,有两个不同的静态字段.如果你想让所有Foo <>的值相同,那么你需要一个单独的地方来存储它
FooHelper.FoosHeight = 50;
Run Code Online (Sandbox Code Playgroud)
FooHelper与Foo <>没有正式关系.