编译器看不到不可为空的字段是在构造函数中初始化的,因为字段是在调用构造函数的方法中初始化的.我打开了switch ,让警告变成项目中的错误.为什么会这样呢?
代码示例:
public class TestClass
{
private List<ColumnWidth> ColumnsWidth;
public TestClass()
{
InitColumnsWidth();
}
private void InitDrawingProcess()
{
ColumnsWidth = GetRowColumnsWidth(X);
}
private List<ColumnWidth> GetRowColumnsWidth(double x)
{
var columnsPositions = new List<ColumnWidth>();
foreach (var widthPct in TableDesign.ColumnsWidth)
{
var width = Width * widthPct;
columnsPositions.Add(new ColumnWidth { X = x, Width = width });
x += width;
}
return columnsPositions;
}
}