为没有子类化的复杂类型创建别名?

Rya*_*hel 4 c# alias

我的程序中有一个复杂的类型,导致很长的行长.这里是:

List<FruitCallback<Fruit>>
Run Code Online (Sandbox Code Playgroud)

这是一个代码行太长且令人困惑的例子:

private static Dictionary<Type, List<FruitCallback<Fruit>>> callbacks = new Dictionary<Type, List<FruitCallback<Fruit>>>();
Run Code Online (Sandbox Code Playgroud)

我可以通过子类化为它创建一个别名:

class FruitCallbacks : List<SomeClass.FruitCallback<Fruit>> { }
Run Code Online (Sandbox Code Playgroud)

但是我可以发誓我记得在某个地方读到一个别名的方法,这样就不需要空类.

Ant*_*ram 7

您可以将完全限定的 using语句添加到类文件(在using指令部分中)以对该类进行别名.这有点冗长.

using MyType = System.Collections.Generic.List<YourNamespace.FruitCallback<YourNamespace.Fruit>>;
Run Code Online (Sandbox Code Playgroud)

然后你可以MyType代替List<FruitCallback<Fruit>>你的代码.

完整的工作示例.

// aliased outside the namespace
using MyList = System.Collections.Generic.List<Bar.FruitCallBack<Bar.Fruit>>;

namespace Bar
{
    // alternately, can be aliased inside the namespace 
    // using MyList = System.Collections.Generic.List<FruitCallBack<Fruit>>;        

    class Program
    {
        static void Main()
        {
            var myList = new MyList();
        }
    }

    public class FruitCallBack<T> { }
    public class Fruit { }
}
Run Code Online (Sandbox Code Playgroud)