这个问题已经被严厉地问过了。
基本上是:如何通过C#中的常量初始化结构?
答案是-在c#中是不可能的。
但是...我会写
SELECT CEILING((AVG(CAST (Salary AS DECIMAL (10,2))))-(AVG(CAST (Salary AS DECIMAL (10,2))))) FROM EMPLOYEES
如果我检查Int32的来源,则将其定义为结构。 我可以轻松地为Int32重复一个代码,并为它命名,例如TModelItem。 我只想写:
public class TModel2
{
public const Int32 R32 = 32;
public const Int32 R33 = 33;
}
[TestMethod]
public void TestMethod1()
{
Int32 currentModel = TModel2.R33;
switch (currentModel)
{
case TModel2.R32:
break;
case TModel2.R33:
break;
}
}
但是我无法正常工作。 是的,TModelItem重复Int32,并且代码甚至都没有编译。
我如何使其工作? 要么 什么可以用来满足我的需求?我需要int或long int或string作为基础。
答案 0 :(得分:0)
就像已经提到的评论一样,这是不可能的。
我不知道这是否满足您的需求。但是您可以执行以下操作:
public readonly struct TModelItem
{
public int Integer { get; }
public TModelItem(int integer)
{
Integer = integer;
}
public static implicit operator TModelItem(int integer)
{
return new TModelItem(integer);
}
public static implicit operator int(TModelItem tModelItem)
{
return tModelItem.Integer;
}
}
public class TModel1
{
public static readonly TModelItem R32 = 32;
public static readonly TModelItem R33 = 33;
}
[TestMethod]
public void TestMethod2()
{
TModelItem currentModel = TModel1.R33;
switch (currentModel)
{
case 32:
break;
case 33:
break;
}
}