C#中多变量元组式赋值语法的名称及工作原理是什么?
关于C#中构造器多变量赋值语法的说明
嗨,这个语法是C# 7.0及以后版本官方支持的特性,它的核心是元组解构赋值,结合了C# 6.0引入的构造器主体表达式(也就是用=>替代传统{}单行构造逻辑的写法),并不是什么“模拟元组的技巧”,有明确的语言特性支持。
具体工作原理拆解:
- 构造器主体表达式:
开头的public NewsStoryViewModel(...) => ...是C# 6.0就有的语法,当构造器逻辑只有单行时,可以用箭头语法替代传统的大括号代码块,让代码更简洁。 - 元组解构赋值:
关键的(Published, Title, Uri) = (published, title, uri);这行是C# 7.0新增的解构特性:- 右边的
(published, title, uri)会创建一个临时的匿名元组,包含三个传入的参数值; - 左边的
(Published, Title, Uri)是对类的成员(属性或字段)的解构目标,编译器会自动将元组的每个元素按顺序赋值给对应的类成员; - 编译器最终会将这段代码转换成等价的传统赋值逻辑:
public NewsStoryViewModel(DateTimeOffset published, string title, string uri) { Published = published; Title = title; Uri = uri; }
- 右边的
补充说明:
这种写法的优势在于,当类需要初始化的成员较多时,能显著减少重复的赋值代码,让构造器逻辑更紧凑易读。只要类的成员是可赋值的(比如公共属性、内部字段等),就可以用这种方式完成批量初始化。
内容的提问来源于stack exchange,提问作者Ilya Chernomordik
相关产品推荐
相关产品推荐

