2010-04-28 35 views
1

好的伙计存储变量的基本问题c#用于其他类

我基本上有一个类,它通过其方法签名之一的参数接受3个字符串。

然后,我试图将这3个字符串映射到全局变量作为存储它们的一种方式。

但是,当我尝试在实例化此类后从另一个类调用这些全局变量时,它们显示为空值。

这是通过方法的setDate得到3串类,并映射..

public class DateLogic 
{ 

    public string year1; 
    public string month1; 
    public string day1; 

    public DateLogic() 
    { 


    } 

    public void setDate(string year, string month, string day) { 

     year1 = year; 
     month1 = month; 
     day1 = day; 


    // getDate(); 

    } 

    public string getDate() { 
    return year1 + " " + month1 + " " + day1; 
    } 

} 

在此之后我尝试调用这个类从这里

public static string TimeLine2(this HtmlHelper helper, string myString2) 
    { 


     DateLogic g = new DateLogic(); 

     string sday = g.day1; 
     string smonth = g.month1; 
     string syr = g.year1; 
    } 

我一直调试和值使它成为全局变量的所有方式,但是当从这个类调用它时,它不显示它们,只显示null。

是因为我正在创建一个全新的实例,我该如何解决这个问题?

回答

6

year1month1day1不是“全局变量” - 他们是实例字段被该类型定义。每个DateLogic实例都有单独的字段。

可以达到你想要使用static领域是什么,但这是要求许多麻烦(尤其是如果你的代码是线程或Web服务器,它是由HtmlHelper暗示上运行) - 这将是很多更好地将配置的DateLogic实例传递给需要它的代码。

0

您在TimeLine2中缺少对g.setDate的调用。另外,仅供参考,它们并不是“全球”变量。一个全局变量可以在没有对象引用的情况下访问,并且不是你想要的。你在谈论类变量。