c# 7.0 元组用作自定义类型
c# 7.0 tuple used as custom type
我有一个 C# 7.0 元组声明,例如:
(int ID, string name, string secondName, int age) foo = (19,"Harry", "Potter", 8);
每次声明一个新变量或者如果我在 function/method 中使用它,我都需要重写整个声明。
例如:
private (int ID, string name, string secondName, int age) DoSomething((int ID, string name, string secondName, int age) passedElement) {...
我想将其用作自定义类型并编写如下内容:
private MyType DoSomething(MyType passedElement) {...
对于传统的元组,我总是使用:
using MyType = System.Tuple< int, string, string, int>;
它工作正常,但如果我尝试使用:
using MyType = (int ID, string name, string secondName, int age);
intellisense 给我一个错误 "identifier expected" 强调等号右边的部分。
如果有的话,正确的申报方式是什么?
提前致谢。
Tuples 不是类型。不是通常意义上的。
创建 C# 中的元组是为了充当单个值的包。
指定的元组元素名称不是类型的一部分,而是根据该定义创建的实例的注释。对于运行时(以及大部分编译器),(int ID, string name, string secondName, int age)
与 (int i1, string s1, string s2, int i2)
或 (int, string, string, int)
.
相同
我有一个 C# 7.0 元组声明,例如:
(int ID, string name, string secondName, int age) foo = (19,"Harry", "Potter", 8);
每次声明一个新变量或者如果我在 function/method 中使用它,我都需要重写整个声明。 例如:
private (int ID, string name, string secondName, int age) DoSomething((int ID, string name, string secondName, int age) passedElement) {...
我想将其用作自定义类型并编写如下内容:
private MyType DoSomething(MyType passedElement) {...
对于传统的元组,我总是使用:
using MyType = System.Tuple< int, string, string, int>;
它工作正常,但如果我尝试使用:
using MyType = (int ID, string name, string secondName, int age);
intellisense 给我一个错误 "identifier expected" 强调等号右边的部分。
如果有的话,正确的申报方式是什么?
提前致谢。
Tuples 不是类型。不是通常意义上的。
创建 C# 中的元组是为了充当单个值的包。
指定的元组元素名称不是类型的一部分,而是根据该定义创建的实例的注释。对于运行时(以及大部分编译器),(int ID, string name, string secondName, int age)
与 (int i1, string s1, string s2, int i2)
或 (int, string, string, int)
.