c#switch-type多案例最佳实践

yig*_*mes 2 c# null if-statement

我有一个网格,我通过它的名称访问每个唯一的列,如下所示:

grid.Columns["SomeColumnA"]
Run Code Online (Sandbox Code Playgroud)

但是,我只能设置该列的属性,如果它不是null,如下所示:

if (grid.Columns["SomeColumnB"] != null) {
    grid.Columns["SomeColumnB"].Width = 100;
}
Run Code Online (Sandbox Code Playgroud)

我有大约15/20个不同的列需要为各种事物设置,但它们都需要首先检查为null.这看起来有点乱,因为这是15/20的if陈述.我想知道这些if语句是否是最好的方法,或者我是否可以实现其他方法来简化它并整理代码.有什么想法/建议吗?

Umu*_*ven 5

如果使用C#6.0,则可以使用空传播运算符.所以

if (grid.Columns["SomeColumnB"] != null) {
    grid.Columns["SomeColumnB"].Width = 100;
}
Run Code Online (Sandbox Code Playgroud)

grid.Columns["SomeColumnB"]?.Width = 100;
Run Code Online (Sandbox Code Playgroud)

更清洁.

  • 我很确定这不起作用.错误将类似*"赋值的左侧必须是变量,属性或索引器"* (3认同)