返回空读取器值的Getter
本文关键字:Getter 读取 返回 | 更新日期: 2023-09-27 18:04:54
我试图通过Getter返回字符串,该字符串是从通过mysql查询循环的DataRead对象获得的。问题是,在加载时,字符串没有加载到主表单的标签上,它返回一个空字符串,如果我在声明时将字符串分配给变量,它将返回到我的主表单。下面是代码:
string text;
public string Text { get { return text; } }
public void DBConn()
{
MySqlConnection conn = new MySqlConnection(connStr);
DataSet ds = new DataSet();
MySqlDataReader reader = null;
try
{
// connection to DB
reader = cmd.ExecuteReader();
if (reader != null && reader.HasRows)
{
while (reader.Read())
{
text = reader["string1"].ToString() + " " + reader["string2"].ToString() + " " + reader["string3"].ToString();
}
}
}
// try, catch. conn.close()
}
阅读器将值赋给文本很好,但在while之外,值没有赋给全局声明的变量,它似乎在离开循环后立即被销毁。有人能帮忙吗?
谢谢。
感谢那些帮助我找到问题解决方案的人。正如你们中的一些人好心解释的那样(在做了大量研究之前,我一开始缺乏理解的知识),这个问题原来是一个问题,我的Main表单与第一个调用具有Getter的类的类在不同的实例中。我现在知道我应该在最初的帖子中提到所有这些细节,我向那些试图从一小段代码中理解的人道歉。实例很多研究后,我的解决方案是首先,创建一个类包含静态getter和setter public static string Text { set; get; }
(这就是我想要的简单访问来自其他类)这有助于使他们可以从所有实例,它可能不是最好的解决方案尤其在OOP——在我的研究中我读到某个地方,使用setter和getter是浪费时间,而不是程序员的最佳实践,最好是封装,但因为我还很新鲜,我以后会看看如何做到这一点。
再次感谢大家