use*_*388 4 c# setter types properties
我想选择设置具有多个类型的属性,并且正在努力寻找解决方案。
public static PropertyType Property
{
get { return Property;}
set {
if (value.GetType() == typeof(PropertyType))
{
Property = value;
}
//Or any other type
if (value.GetType() == typeof(string))
{
Property = FunctionThatReturnsPropertyType(value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这是有道理的,我只将Property设置为一种类型,但是我希望能够将其分配给其他类型,然后在setter中进行转换-这可能吗?
您想要的东西看起来像是设计错误。在C#属性中,setter和getter始终具有相同的类型。因此,您基本上有下一个选择:
object(或者dynamic如果您希望获得更差的设计)并在设置器中转换值- 我强烈建议您避免这种方法。property概念,创建单独的方法以获取字段的值并从不同类型进行分配。如果您在编译时不知道类型,则此方法将允许您分配值,而getter方法仍将正确键入。但总的来说,它看起来仍然像是糟糕的设计。