Im trying to convert some Delphi code to c# and I've come across a problem...
In Delphi I've decalared a new type
Type TData = Array of Extended
where I can access the result of functions returning this type with statements like
Function TMyObject.ReadData:TData;
begin
...
end;
Data := MyObject.ReadData;
Result = Data[7] + Data[12]
now if I had intially declared this as Array of Single
then I could change this one line to change the precision. (which I may have to do shortly to lower it to Double
so that any results exactly match the c# version.
so the question is can I do som开发者_如何学JAVAething similar in c#? something like
class Data : Double[]
although not exactly like this since it doesn't compile, or would I do
class DataEntry : Double
...
public DataEntry[] Read
{
...
}
The closest you can get in C# is
using DataEntry = System.Double;
Put this at the top of each file.
You can wrap an array of Double in a class and provide index properties for it.
It sounds like you want something similar to a C/C++ typedef
, which unfortunately I don't think is supported in C#. You can make local alias within a single source file (see below), but the alias won't be visible anywhere else.
To create a local alias, add this at the top of your source file:
using Data = System.Double;
No, C# has no direct way of doing that.
You could however wrap that array (and all or most code that uses it) in a generic class:
class MyClass<T>
{
private T[] Mydata;
}
精彩评论