在我的C#项目中,我需要以下形式的长联合类型:
System.Tuple<..., ..., ...>
其中...
是名称长度足以使整个元组类型声明延伸整个行宽的组件。
C#是否支持一种简写方式?
我正在想像Haskell的type synonyms之类的东西,在这里我可以声明一个简短的类型名称来代替长名称,就像声明一个新变量一样容易。
我尝试使用var
,但是由于我需要声明delegate
的参数类型,因此出现错误消息:“上下文关键字'var'只能出现在局部变量中声明或脚本模式”;似乎简单地使用var
不会对我的情况下的工作。
答案 0 :(得分:3)
有:
using MyAlias = MyLongType
它被称为使用别名指令。它也适用于命名空间。更多信息here。
但是,这仅在1个文件内有效。 您需要在将要使用的每个文件中编写它,或者使用解决方法:
从具有长类型的类继承,并且不向功能添加任何内容。
示例:
class MyAlias: MyLongType{}
答案 1 :(得分:2)
直接从文档
using directive (C# Reference)
为名称空间或类型创建别名。这称为使用 别名指令。
using Project = PC.MyCompany.Project;
例如
using ShortTypeName = My.Very.Silly.Long.TypeName.That.is.VerySuspiciousAndProbablyShouldBeRefactoredAnyway;`
using ShortOtherTypeName = My.Very.Silly.Long.TypeName.That.is.VeryOtherSuspiciousAndProbablyShouldBeRefactoredAnyway;`
internal class Program
{
private (ShortTypeName , ShortOtherTypeName ) _myLovelyTuple;