我正在编写一个用于SSIS进程的程序,它的一部分工作是从数据流中读取行并将它们打包到字符串数组List<string[]>
中。我的主类包含已更新列表,但是我有一个EmailBuilder类,该类需要访问“已更新列表”字段以编写HTML电子邮件。现在,我的代码如下:
字段
public static List<string[]> Updated = new List<string[]>();
ProcessInputRow
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
if (Row.Missing_IsNull)
{
Updated.Add(new string[] { Row.Name, Row.PreviousOutstanding.ToString(), Row.PreviousDate.ToString(), Row.CurrentOutstanding.ToString(), Row.CurrentDate.ToString()});
}
else
{
Missing.Add(Row.Missing);
}
}
当然,这里的问题是我的字段是 public ,这是禁止的。我尝试使用内置属性:
public static List<string[]> Updated { get; private set; }
但是我假设这返回Null异常,因为到那时我还没有真正创建列表。那么,如何安全地实现此代码?我似乎无法操纵它,以致可以在不将其设置为公共字段的情况下从类外部访问该字段。任何输入,我们将不胜感激。
答案 0 :(得分:0)
如果我理解正确,那么您想保留该字段的私密性,但可以在课堂之外对其进行更改。可以使用执行此操作的公共方法吗?还是财产?
喜欢
MainClass
{
...
otherClass.AddToPrivateList("content")
}
答案 1 :(得分:-1)
最好隐藏自己的字段,即使这不是必需的。如果您使用的是C#6或更高版本,则可以像这样初始化auto属性。
public static List<string[]> Updated { get; private set; } = new List<string[]>();
public static List<TheOtherType> Missing { get; private set; } = new List<TheOtherType>();