gpt4 book ai didi

c# - 有没有办法将参数传递给setter

转载 作者:太空狗 更新时间:2023-10-29 20:55:25 25 4
gpt4 key购买 nike

有没有办法将参数传递给 setter?我如何将字符串传递到下面的 setter 中?我如何使用新的字符串参数调用 setter ?

public string It
{
get{ { return it;}

set { it = value;}
}

非常感谢

最佳答案

根据您分配给属性的值,setter 将 value 作为自己的“参数”:

foo.It = "xyz"; // Within the setter, the "value" variable will be "xyz"

如果你想使用额外的参数,你需要一个索引器:

public string this[string key]
{
get { /* Use key here */ }

set { /* Use key and value here */ }
}

然后您可以访问它

foo["key"] = "newValue";

您不能在 C# 中为索引器命名,也不能通过名称使用其他语言中的命名索引器(COM 除外,从 C# 4 开始)。

编辑:正如 Colin 所指出的那样,您应该谨慎使用索引器……例如,不要只是将它们用作为 setter 获取额外参数的方式,然后您在 getter 中忽略它。像这样的事情会很糟糕:

// Bad code! Do not use!
private string fullName;
public string this[string firstName]
{
get { return fullName; }
set { fullName = firstName + " " + value; }
}

// Sample usage...
foo["Jon"] = "Skeet";
string name = foo["Bar"]; // name is now "Jon Skeet"

关于c# - 有没有办法将参数传递给setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6124472/

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