为没有子类化的复杂类型创建别名
本文关键字:复杂 类型 创建 别名 子类 | 更新日期: 2023-09-27 18:11:40
我的程序中有一个复杂的类型,导致非常长的行长度。
List<FruitCallback<Fruit>>
下面是代码行太长而令人困惑的例子:
private static Dictionary<Type, List<FruitCallback<Fruit>>> callbacks = new Dictionary<Type, List<FruitCallback<Fruit>>>();
我可以为它创建一个别名,通过子类化它,像这样:
class FruitCallbacks : List<SomeClass.FruitCallback<Fruit>> { }
但是我可以发誓,我记得在某处读到过一种方法,可以像这样别名,这样就不需要一个空类了
你可以添加一个完全限定的 using
语句到你的类文件(在using directives部分)来别名类。这有点啰嗦。
using MyType = System.Collections.Generic.List<YourNamespace.FruitCallback<YourNamespace.Fruit>>;
然后你可以用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 { }
}
你可以这样做:
using Foo = List<FruitCallback<Fruit>>;
那么您可以在需要使用List<FruitCallback<Fruit>>
的任何地方使用Foo例子:
using System;
using System.Collections.Generic;
using Foo = List<FruitCallback<Fruit>>;
class Program
{
static void Main()
{
Foo f = new Foo();
}
}
也许您正在考虑通过using语句混淆类型?
using MyType = MyCompany.MyProject.DataAccess.Interfaces.MyType;