C#中的typedef仿真

我在类中有一个名为uid的字段变量。类型是int,但我想打开我改变它的长或短的可能性。 使用C ++,typedef是用于此目的的,但我看到C#没有typedef。 有没有办法模仿C#中的typedef?     
已邀请:
我想你正在尝试为这种类型添加别名。如果是这样,您可以通过
using
alias指令对其进行别名。分配别名时,必须指定完全限定类型(整个命名空间)。 例如:
using System;
using MyAlias = System.Int32;

namespace UsingAlias
{
    class Program
    {
        static void Main(string[] args)
        {
            MyAlias temp = Math.Min(10, 5);
            Console.WriteLine(temp);

            MyAlias result = MyAlias.Parse("42");
            Console.WriteLine(result);
        }
    }
}
    
尝试制作
class
。它类似于类固醇的typedef,您可以根据需要更改内部表示,而不会影响界面! 你甚至可以把它作为一个指导!     

bab

使它成为一个结构:
struct Uid { public int Value; }
    
将其封装在自己的类中(如果更合适,则将其封装在结构中)。
public class UID
{
    public int Value { get; set; }
}
根据您的UID类编写您的方法,将实际值类型的暴露限制为必要的最小代码子集。
publc class Entity
{
     public UID ID { get; set; }

     public void Foo( UID otherID )
     {
         if (otherID.Value == this.ID.Value)
         {
             ...
         }
     }
}
}
    

bab

仅使用一个字段定义结构
  public struct ID_Type
  {
      public long Id;
  };
并在需要时使用它。 如果您只有一个需要ID类型的类,您还可以尝试使此类成为通用类,其中UID类型是类型参数。     
你总是可以使用泛型:
public class Foo<T>
{
  public T MyField { get; set; } 
}

public class FooInt : Foo<int>
{
}

public class FooShort : Foo<short>
{
}
或者,稍后再更改它。
/// want an int
public class Foo
{
  public int MyField { get; set; } 
}

/// and just change it later on:
public class Foo
{
  public short MyField { get; set; } 

}
    
如果您使用int然后稍后更改它,结果是否会相同?     
看到这个,他使用运算符重载 http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/019a258e-8d50-4a9f-b0ef-8311208ebb6a/     
这是一个有帮助的简单解决方案。
    using typedef = System.Int32;

     class MyTypeDef
     {
          typedef ERROR, TRUE=1, FALSE=0;
          public int MyMethod()
          {
              if(this is an error condition)
              {
                 ERROR = TRUE;
              }
              else
              {
                  ERROR = FALSE;
              }
              return ERROR;
          } // end MyMethod
      } // end MyTypeDef
    
  有没有办法模仿C#中的typedef 没有   解决我的问题 什么问题?     

要回复问题请先登录注册