Defining type aliases
One feature of Pascal I found very useful was the ability to name a data type, eg
type
person: record
name: string;
age: int;
end;
var
me: person;
you: person;
etc
Can you do something similar in C#? I want to be able to do something like
using complexList = List<Tuple<int,string,int>>;
complexList peopleList;
anotherList otherList;
So that if I have to change the definition of the datatype, I can do it in one place.
Does C# support a way to achieve this?
Yes, it's possible. You can write:
using System;
using System.Collections.Generic;
namespace ConsoleApplication12
{
using MyAlias = List<Tuple<int, string, int>>;
}
or, if declared outside the namespace:
using System;
using System.Collections.Generic;
using MyAlias = System.Collections.Generic.List<System.Tuple<int, string, int>>;
namespace ConsoleApplication12
{
}
then use it as a type:
MyAlias test = new MyAlias();
It's not excatly what you do in Pascal, but you can use the using
-directive. Have a look here on how to use it
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyList = Dummy2.CompleXList;
namespace Dummy2
{
public class Person
{
}
public class CompleXList : List<Person>
{
}
class Program
{
static void Main(string[] args)
{
MyList l1 = new MyList();
}
}
}