Tutorial :c# Type Alias/Custom Type



Question:

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 something 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  {  ...  }  


Solution:1

You can wrap an array of Double in a class and provide index properties for it.


Solution:2

The closest you can get in C# is

using DataEntry = System.Double;  

Put this at the top of each file.


Solution:3

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;  


Solution:4

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

Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »