Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 房地产正在制造麻烦_C#_Winforms - Fatal编程技术网

C# 房地产正在制造麻烦

C# 房地产正在制造麻烦,c#,winforms,C#,Winforms,在我的应用程序中,我添加了一个Properties.cs文件,其中包含我将在整个应用程序中使用的属性。我得到的NullReferenceException=>对象引用未设置为对象的实例 下面是Properties.cs的代码 public class Properties { private static string type1; public static string Type1 { get { return

在我的应用程序中,我添加了一个Properties.cs文件,其中包含我将在整个应用程序中使用的属性。我得到的NullReferenceException=>对象引用未设置为对象的实例

下面是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
}
改用这个:

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

您以错误的方式执行空值检查

正确的方法是:

if (string.IsNullOrEmpty(Properties.Type1))
{
 ....
}
你可以这样做

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

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

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

public class Properties
{   
    public static string Type1 { get;set; }
}
其次,这与属性无关,与对空实例调用方法有关。您只需使用==即可避免此问题,即

if (Properties.Type1 == "" || Properties.Type1 == null)
{
    // Do something
}
但是,为了方便起见,还有string.IsNullOrEmpty:


那么,Type1是否已设置,或者它是否仍然具有默认的空值?请使用string.IsNullOrEmptyCheck属性!=null和Type1!=也是空的@KingKing实例字段也默认为null。@LasseV.Karlsen引用类型字段在执行类型操作时默认为null。Type1=再次出现NullReferenceException。如何设置它。?类型?那是什么?您只展示了类属性的实现。如果只为属性赋值,则无法在问题中显示的代码中获得NullReferenceException。它是否应首先检查null,以便如果Properties.Type1==null | | Properties.Type1==string.empty,因为如果为null,它将在字符串检查上引发异常?检查是否为空并不重要在Marc显示的代码中,无论是字符串还是null,它都可以工作。但是,您不能在字符串中添加点,但他没有这样做。我正在为属性赋值,例如Types.Type1=abc;但是出现NullReferenceException。“这有什么错呢?”达瓦尔需要看到一个具体的例子来解决这个问题。还有一件事。我添加了一个函数来读取xml文件。返回数据集的属性。从这个DataSet属性,我在get子句中为第二个属性赋值。e、 g.公共静态数据集属性列表{get{ds1=ReadXmlFileLabelFileName;返回ds1;}}公共静态字符串StringValue{get{StringValue=ControlProperties.Tables[ABC]。行[0][0]。ToString;}这是一种正确的方式还是有什么不对的地方。?
if (string.IsNullOrEmpty(Properties.Type1))
{
    // Do something
}