gpt4 book ai didi

c# - 我可以在对象构造之外使用对象初始值设定项吗?

转载 作者:太空宇宙 更新时间:2023-11-03 13:41:20 26 4
gpt4 key购买 nike

给定的对象初始化器:

Foo foo = new Foo{ Name = "Jhon", Value = 2, IsMale = true };

它们能以某种方式在别处使用吗?(在对象构造之外)所以不用:

foo.Name = "Name";
foo.Value = 5;
...
foo.DoSth();

只使用类似的东西:

Name = "Name";
Value = 5;
...
DoSth();

鉴于这在 foo 的类层次结构之外。这是为了避免多次使用一个对象的成员。

例如在 VB/GML(GameMaker 的脚本语言)中可以使用:

with(foo)
{
Name = "Name";
Value = 5;
...
DoSth();
}

代替 foo.something

那么C#中有这样的东西吗?

最佳答案

不,对象初始化器是唯一可以使用赋值语法的地方。如果您需要从代码中的许多不同位置一次分配多个字段而不重复,您可以定义一个方法来为您封装所有分配:

void SetNameAndGender(string f, string l, bool isMale) {
FirstName = f;
LastName = l;
IsMale = isMale;
}

不幸的是,它不允许您设置任意一组属性,就像您显示的 VB 语法一样。

关于c# - 我可以在对象构造之外使用对象初始值设定项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16875271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com