属性的表达式set方法中的多个值

时间:2017-12-11 12:21:43

标签: c# expression-body

是否可以在set方法中设置多个值?

我想做以下事情:

public int ID { get; set => {Property = value, ID=value}; }

2 个答案:

答案 0 :(得分:1)

PHP documentation没有表现力来执行多项操作,因此您需要使用完整的方法体语法:

private Foo foo;
public Foo Foo
{
    get { return foo; }
    set
    {
        foo = value;
        OtherProperty = value.SomethingElse;
    }
}

在某些情况下执行此操作是合理的,因为某些操作本质上具有副作用。例如,如果您要设置对象的时区属性,则更改基础DateTime以确保其DateTimeKindDateTimeKind.Local是有意义的。如果您没有,则对象的DateTime属性不完整或错误。

那就是说,如果你发现自己到处都这样做,你可能想重新考虑你的设计,因为过度使用是一种代码味道。

答案 1 :(得分:0)

=>之后set可以使用{..}而不是class Sample { private int _Property; private int _ID; public int Property { get { return _Property; } } public int ID { get { return _ID; } set { _ID = value; _Property = value; } } } 。我想你正在寻找一个这样的课程:

Property

这是显示正常工作的Example

  

此处ID是一个只读属性,您无法设置其值,   它会在您设置 renderAlbums() { const list = this.state.albums.map(album => { return <AlbumDetail key={album.title} album={album} />; }); return list; }

的值时自动分配