c#键入别名/自定义类型

我试图将一些Delphi代码转换为c#,我遇到了一个问题……

在Delphi中,我已经推出了一种新类型

Type TData = Array of Extended 

在哪里我可以访问返回此类型的函数的结果与语句,如

 Function TMyObject.ReadData:TData; begin ... end; Data := MyObject.ReadData; Result = Data[7] + Data[12] 

现在,如果我最初将其声明为Array of Single那么我可以改变这一行来改变精度。 (我可能不久要将它降低到Double以便任何结果与c#版本完全匹配。

所以问题是我可以在c#中做类似的事吗? 就像是

 class Data : Double[] 

虽然不完全像这样,因为它不编译,或者我会这样做

 class DataEntry : Double ... public DataEntry[] Read { ... } 

您可以在类中包装Double数组并为其提供索引属性。

你可以在C#中获得的最接近的是

 using DataEntry = System.Double; 

把它放在每个文件的顶部。

听起来你想要类似于C / C ++ typedef ,遗憾的是我不认为C#支持它。 您可以在单个源文件中创建本地别名(请参阅下文),但别名在其他任何位置都不可见。

要创建本地别名,请在源文件的顶部添加:

 using Data = System.Double; 

不,C#没有直接的方法。

但是,您可以在通用类中包装该数组(以及使用它的所有或大多数代码):

 class MyClass { private T[] Mydata; }