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

时间:2010-07-09 15:36:42

标签: c# delphi types

我试图将一些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
{
...
}

4 个答案:

答案 0 :(得分:5)

C#中最接近的是

using DataEntry = System.Double;

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

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

using Data = System.Double;

答案 3 :(得分:1)

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

然而,您可以将该数组(以及使用它的所有或大多数代码)包装在泛型类中:

class MyClass<T>
{
   private T[] Mydata;

}