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; }