c# - 在 C# 中替换/更改空白或空字符串值

标签 c# accessor

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

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.IsNullOrWhiteSpace(value) 吗?


根据您发布的代码,您需要调用:

this.PaymentMethod = pmtMthd;

代替

paymentMethod = pmtMthd;

大写 p 将使用您的属性而不是直接使用字符串。这就是为什么在访问类变量时使用 this. 是个好主意。在这种情况下,是 大写 而不是 this. 造成了差异,但我会养成使用 this. 的习惯/p>

关于c# - 在 C# 中替换/更改空白或空字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9338870/

相关文章:

c# - SQL Azure 和 SQL Server 2008 有什么区别?

c# - Windows Phone 7项目使用痣的方法

c# - 为什么在安装 Visual Studio 2008 后,catch(TException) 处理 block 行为在调试器下有所不同?

java - 一个不可变的类成员应该有一个访问方法还是允许公开?

javascript - 使用字符串变量的值作为对象参数访问器

c# - 如何从签名文件中获取签名者的姓名

c# - 如何从 SQL 中获取项目,使用 linq to sql,其中日期是从今天到提前 30 天,并作为列表返回

F# 高阶属性访问器

mstest - 为什么 MSTest 访问器文件包含 "desktop"引用

javascript - D3.js 中的 array_replace?