Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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中的空白或空字符串值_C#_Accessor - Fatal编程技术网

C# 替换/更改C中的空白或空字符串值

C# 替换/更改C中的空白或空字符串值,c#,accessor,C#,Accessor,在我的程序的构造函数的属性/访问器方法中有类似的内容 using System; namespace BusinessTrips { public class Expense { private string paymentMethod; public Expense() { } public Expense(string pmtMthd) {

在我的程序的构造函数的属性/访问器方法中有类似的内容

using System;


namespace BusinessTrips
{
    public class Expense
    {
        private string paymentMethod;


        public Expense()
        { 
        }
        public Expense(string pmtMthd)
        {               
            paymentMethod = pmtMthd;


        }   


      //This is where things get problematic
        public string PaymentMethod
        {
            get    
            {
                return paymentMethod;
            }
            set
            {
                if (string.IsNullOrWhiteSpace(" "))
                    paymentMethod = "~~unspecified~~";
                else paymentMethod = value;
            }
        }



    }
}

当输入PaymentMethod的一个新属性(为null或空格)时,这显然不起作用。有什么想法吗?

您是否只需要将string.IsNullOrWhiteSpace替换为string.IsNullOrWhiteSpacevalue

根据您发布的代码,您需要拨打:

this.PaymentMethod = pmtMthd;
而不是

paymentMethod = pmtMthd;

大写字母p将直接使用您的属性而不是字符串。这就是为什么使用它是一个好主意。当访问类变量时。在这种情况下,这是资本,而不是这个。这就不同了,但我已经养成了使用它的习惯。

您是否只需要将string.IsNullOrWhiteSpace替换为string.IsNullOrWhiteSpacevalue

根据您发布的代码,您需要拨打:

this.PaymentMethod = pmtMthd;
而不是

paymentMethod = pmtMthd;

大写字母p将直接使用您的属性而不是字符串。这就是为什么使用它是一个好主意。当访问类变量时。在这种情况下,这是资本,而不是这个。这就不同了,但我已经养成了使用这个的习惯。

让·巴纳德·佩林的答案是正确的

但这里是完整的代码,我在LinqPad中测试了它,以证明它是有效的

    public class Foo {
        private string _paymentMethod = "~~unspecified~~"; 
        public string PaymentMethod
        {
            get    
            {
                return _paymentMethod;
            }
            set
            {
                if (string.IsNullOrWhiteSpace(value))
                    _paymentMethod = "~~unspecified~~";
                else _paymentMethod = value;
            }
        }
}
主要包括:

void Main()
{
    var f = new Foo();
    f.PaymentMethod = "";
    Console.WriteLine(f.PaymentMethod);
    f.PaymentMethod = " ";
    Console.WriteLine(f.PaymentMethod);
    f.PaymentMethod = "FooBar";
    Console.WriteLine(f.PaymentMethod);
}
控制台的输出:

~~unspecified~~
~~unspecified~~
FooBar

Jean Barnard Pellerin的答案是正确的

但这里是完整的代码,我在LinqPad中测试了它,以证明它是有效的

    public class Foo {
        private string _paymentMethod = "~~unspecified~~"; 
        public string PaymentMethod
        {
            get    
            {
                return _paymentMethod;
            }
            set
            {
                if (string.IsNullOrWhiteSpace(value))
                    _paymentMethod = "~~unspecified~~";
                else _paymentMethod = value;
            }
        }
}
主要包括:

void Main()
{
    var f = new Foo();
    f.PaymentMethod = "";
    Console.WriteLine(f.PaymentMethod);
    f.PaymentMethod = " ";
    Console.WriteLine(f.PaymentMethod);
    f.PaymentMethod = "FooBar";
    Console.WriteLine(f.PaymentMethod);
}
控制台的输出:

~~unspecified~~
~~unspecified~~
FooBar

@user1200789:我们需要看到更多的代码。这里没有足够的信息告诉我们问题是什么。你怎么知道它不起作用了?您是使用调试器检查值,还是将其写入控制台…?通过控制台运行调试器,我已经添加了所有内容。@user1200789发现您的问题,更新了我的答案。让我知道它是否有效,如果有效,请接受以下回答:@user1200789对我有效当我将其中一个构造函数中的paymentMethod更改为空白、null或空格stringYour right,我应该调用该属性!不管出于什么原因,它仍然不能工作。@user1200789:我们需要看到更多的代码。这里没有足够的信息告诉我们问题是什么。你怎么知道它不起作用了?您是使用调试器检查值,还是将其写入控制台…?通过控制台运行调试器,我已经添加了所有内容。@user1200789发现您的问题,更新了我的答案。让我知道它是否有效,如果有效,请接受以下回答:@user1200789对我有效当我将其中一个构造函数中的paymentMethod更改为空白、null或空格stringYour right,我应该调用该属性!不管出于什么原因,它仍然不起作用。如果要在构造函数中表示“业务逻辑”,只需重写直接字段值trip=assingment with property setter call trip=如果要在构造函数中表示“业务逻辑”,只需重写直接字段值trip=assingmentwithproperty setter调用trip=