首页 > 解决方案 > 公共字符串不会返回所有信息

问题描述

试图弄清楚这一点..已经搜索了一段时间,但没有得到任何地方。

我在 form1 中有以下代码,并且运行良好。

    Connection.tanv = txtUser.Text;
    Connection.tpass = txtPasswd.Text;
    try {
        connection = new MySqlConnection("datasource=localhost;port=3306;database=Diary;username=" + Connection.tanv + ";password=" + Connection.tpass + "");

在一个名为 Connection 的类中,我有以下代码

public class Connection
{
    public static string tanv { get; set; }
    public static string tpass { get; set; }
    public static string strcon = "datasource=localhost;port=3306;database=Diary;username=" + tanv + ";password=" + tpass + "";
}

例如,当我这样做时

Messagebox.Show(Connection.tanv);

我得到正确的信息

但是当我尝试做

Messagebox.Show(Connection.strcon);

我只得到文本而不是来自其他字符串的信息......我做错了什么?

标签: c#stringstaticpublic

解决方案


public static string strcon = "datasource=localhost;port=3306;database=Diary;username=" + tanv + ";password=" + tpass + "";

这是一个静态字段。它被初始化一次。当它被初始化tanv并且tpass仍然是null,所以这并没有做一些有用的事情。

您希望每次strcon请求时都发生字符串连接。为此,将其设为属性:

public static string strcon => "datasource=localhost;port=3306;database=Diary;username=" + tanv + ";password=" + tpass + "";
//                         ^^^^

推荐阅读