C# C类对象

C# C类对象,c#,class,object,C#,Class,Object,我在下面使用了一个类。我将这个类用于我的windows应用程序。但是,当我从我的应用程序ReadInConfig()调用该方法时,它成功读取并填充数据表,并分配_sip_ip地址 在我的windows应用程序中,我有以下内容。但是,它没有给我分配的sip_ip ConfigSIP readIn = new ConfigSIP(); readIn.ReadInConfig(); string sip_ip = readIn.sip_ip(); // Get nothing here. 我认为数据

我在下面使用了一个类。我将这个类用于我的windows应用程序。但是,当我从我的应用程序ReadInConfig()调用该方法时,它成功读取并填充数据表,并分配_sip_ip地址

在我的windows应用程序中,我有以下内容。但是,它没有给我分配的sip_ip

ConfigSIP readIn = new ConfigSIP();
readIn.ReadInConfig();
string sip_ip = readIn.sip_ip(); // Get nothing here.
我认为数据表分配的_sip_ip与readIn.sip_ip()中的操作是不同的对象

我有办法解决这个问题吗

非常感谢,

public class ConfigSIP
{
    private string _sip_ip;

        // Fill the data table and assign the sip ip.
    public void ReadInConfig()
    {
        DataTable dt = new DataTable("Admin");
        dt.ReadXmlSchema(@"C:\Config.xml");
        dt.ReadXml(@"C:\Config.xml");

        _sip_ip = dt.Rows[0]["Sip_ip"].ToString();
    }

        // Return the sip ip address.
    public string sip_ip()
    {
        return _sip_ip;
    }
}

您忘记调用ReadInConfig:

ConfigSIP readIn = new ConfigSIP();
readIn.ReadInConfig();
string sip_ip = readIn.sip_ip();

如果您的代码是逐字复制的,那么您的客户端代码不会调用ReadInConfig()方法。因此字符串将永远不会填充。

您好,抱歉。我打电话给ReadInConfig()。当我复制和粘贴时,我一定把它漏掉了。我现在已经编辑了我的代码。在这种情况下,我猜测dt.Rows[0][“Sip_ip”].ToString()是空的。尝试在该行设置断点,看看datatable包含什么。什么是“nothing”?空字符串?如果是,这是_sip_ip字段的一个完全有效的值。如果它不是一个有效的值,那么在分配它之后立即放置一个断言,这说明是这样的。注意,OP在回答问题时编辑了缺少的行。