开发者

c# Type Alias/Custom Type

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;

}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜