gpt4 book ai didi

C# 根据其他属性值自动分配属性

转载 作者:IT王子 更新时间:2023-10-29 04:47:45 26 4
gpt4 key购买 nike

如果我有一些类型,例如:

public class SomeType //Generated by some codegen i won't to change that.
{
string C { get; set; }
}

public class AnotherType : SomeType
{
string A { get; set; }
string B { get; set; }
}

是否可以自动分配属性 C?例如,当属性 A 和 B 被分配时,或者当我将这种类型转换为另一种类型时,或者以其他方式?

基本上,例如,当属性值 A 和 B 被填充时,我想执行一些逻辑以根据值 A 和 B 自动分配属性 C。

除了使用标准属性之外,还有其他方法吗?

我在想,当我可以将类型 AnotherType 转换为 SomeType 时,可以做一些魔术之王,但我无法实现隐式运算符,因为编译器不会将此转换逻辑“从 A+B 到 C”不允许相关类型的隐式运算符。

现在我看到的唯一方法是删除继承并为 AnotherType 到 SomeType 的转换实现隐式运算符,但在这种情况下,我需要复制 AnotherType 类型中 SomeType 类型的所有属性,并且每次都需要手动更改 AnotherType 类型当 SomeType 发生变化时。

最佳答案

这可以使用自动实现的属性。您可以使用 B 的 setter 为 C 赋值:

public class SomeType
{
public string A { get; set; }
public string C { get; set; }

private string _b;
public string B
{
get { return _b; }
set
{
// Set B to some new value
_b = value;

// Assign C
C = string.Format("B has been set to {0}", value);
}
}
}

关于C# 根据其他属性值自动分配属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3594091/

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