C#:声明要使用的数据类型的常量变量
是否可能以某种方式定义一个常量,说明对某些变量使用何种数据类型,类似于泛型?因此,在某个类中,我会有如下内容:C#:声明要使用的数据类型的常量变量,c#,generics,C#,Generics,是否可能以某种方式定义一个常量,说明对某些变量使用何种数据类型,类似于泛型?因此,在某个类中,我会有如下内容: MYTYPE = System.String; // some other code here MYTYPE myVariable = "Hello"; 从原理上讲,它应该和泛型一样,但我不想每次调用这个类的构造函数时都编写数据类型。它应该简单地保证两个(或更多)变量使用相同的数据类型。您可以使用别名执行此操作: using MyType = System.String; 但是
MYTYPE = System.String;
// some other code here
MYTYPE myVariable = "Hello";
从原理上讲,它应该和泛型一样,但我不想每次调用这个类的构造函数时都编写数据类型。它应该简单地保证两个(或更多)变量使用相同的数据类型。您可以使用
别名执行此操作:
using MyType = System.String;
但是,仅以每个文件为基础。坦率地说,它对于为某些复杂的复合泛型类型(我正在考虑etc)创建一个简短的别名很有用,但除此之外,泛型更通用。是的,带有一个
编辑:只需几秒钟。您可以使用别名:
using System;
using MYTYPE = System.String;
class Program
{
static void Main()
{
MYTYPE f = "Hello";
Console.WriteLine(f);
}
}
那么,您可以使用指令使用:
using MYTYPE = System.String;
但是,这与typedef并不完全相同-尤其是,此代码现在完全有效:
MYTYPE x = "hello";
string y = "there";
x = y;
编译器知道它们仍然是相同的类型
现在还不清楚你想要实现什么,尤其是在这里:
我不想每次调用此类的构造函数时都编写数据类型
你什么意思
请注意,使用指令特定于源文件,而不是整个项目。泛型有什么问题?你不喜欢他们是因为他们的构造器很长?用一个简短的名称将它们包装在Classes
中…classblub:VeryLongClass
我的意思是我不想定义要在构造函数中使用的数据类型(就像泛型类一样)。using指令正是我搜索的内容。非常感谢@user1225775:老实说,关于构造器,你的意思还不清楚。如果有一个完整的例子来说明您试图实现的目标以及您对泛型的理解,那么这一点就更加清楚了——下次要记住这一点。当我调用使用泛型的类的构造函数时,我必须说:例如,MyObject mo=new MyObject()。但这意味着T可以存在更多具有不同数据类型的MyObject实例。例如,我可以在下一行中说:MyObject mo2=new MyObject()。这不是我想要的,因为我希望该对象的所有实例的类型(我现在使用using指令)都是相同的。@user1225775:在这种情况下,我不清楚为什么需要涉及泛型。。。