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