物业正在制造麻烦

时间:2013-11-04 09:47:43

标签: c# winforms

在我的应用程序中,我添加了一个Properties.cs文件,其中包含我将在整个应用程序中使用的属性。我得到NullReferenceException => Object reference not set to an instance of an object.

以下是Properties.cs的代码

public class Properties
{
    private static string type1;

    public static string Type1
    {
        get
        {
            return type1;
        }
        set
        {
            type1= value;
        }
    }
}

当我以我的某个表单访问此属性时,我收到错误。 e.g。

if (Properties.Type1.Equals(string.Empty) || Properties.Type1.Equals(null))
{
    // Do something
}

4 个答案:

答案 0 :(得分:5)

首先,你为自己的生活艰难。这很好(或者至少, as 很好,但更容易;静态成员是否是一个好主意是一个单独的问题,并且在很大程度上取决于上下文):

public class Properties
{   
    public static string Type1 { get;set; }
}

其次,这与属性无关,而与调用null实例上的方法有关。你可以使用==来避免这个问题,即

if (Properties.Type1 == "" || Properties.Type1 == null)
{
    // Do something
}

但是,为方便起见,还有string.IsNullOrEmpty

if (string.IsNullOrEmpty(Properties.Type1))
{
    // Do something
}

答案 1 :(得分:2)

请改用:

if (string.IsNullOrEmpty(Properties.Type1))
{
    // Do something
}

答案 2 :(得分:2)

你正在以错误的方式进行空和空检查。

正确的方法是:

if (string.IsNullOrEmpty(Properties.Type1))
{
 ....
}

答案 3 :(得分:0)

你可以这样做

if (String.IsNullOrEmpty(Properties.Type1))
{
    // Do something
}

但是如果你想要一个默认值,那么我建议你在静态构造函数中设置它。