C#中的字符串扩展问题

用户3856804

我试图做一个简单的字符串扩展,将更改分配给原始字符串(如toUpper)。在这种情况下,如果方法既不是空格也不为null,则该方法将内容分配给第二个参数...否则将当前值保留在适当的位置,或将空值分配给“”。所以,我想拥有它:

somerecord.Property1.func(someobj.property);
somerecord.Property2.func(someobj.otherproperty);
somerecord.Property3.func(someobj.anotherproperty);

而我的代码看起来像

    public static string func(this String str, string replacement)
    {
        if (!String.IsNullOrWhiteSpace(replacement)) {
            str = replacement;
            return replacement;
        }
        else
        {
            if(str == null)
              str = "";
            return "";
        }
    }

我想设置this为,ref但不能。关于如何干净地实现这一点的任何想法?

中间

不要将方法设为扩展方法,而要实现常规的静态方法:

public static void func(ref string str, string replacement)
{
    if (!String.IsNullOrWhiteSpace(replacement)) {
        str = replacement;
    }
    else
    {
        if(str == null)
          str = "";
    }
}

但是请注意,您的用例仍然无法使用,您不能将属性作为ref参数开头:

class Foo
{
    public string someVariable;
    public string SomeProperty { get; }
}

var foo = new Foo();
func(ref foo.someVariable, ""); //ok
func(ref foo.SomeProperty, ""); //compile time error

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#中的字符串相等问题

来自分类Dev

C扩展中的unicode字符串

来自分类Dev

将字符串插入文件扩展名C#之前的文件路径字符串中

来自分类Dev

C ++中的字符串索引问题

来自分类Dev

在C#中检测字符串中的重复单词有问题吗?

来自分类常见问题

C#中损坏的字符串

来自分类Dev

C#中的字符串结尾

来自分类Dev

C#中的字符串表

来自分类Dev

C#中的$“ ... {} ...”字符串文字?

来自分类Dev

C#中的子字符串

来自分类Dev

C#中的字符串枚举

来自分类Dev

在C#中更改字符串

来自分类Dev

字符串与日期混淆。C#中的ToDouble问题

来自分类Dev

在C#中读取CSV文件时出现编码字符串问题

来自分类Dev

用C#在文本文件中写入字符串数据的字节格式的问题

来自分类Dev

在 C# 中执行字符串操作时遇到的问题

来自分类Dev

从通用值到字符串的C#转换问题

来自分类Dev

解析字符串逻辑问题C#

来自分类Dev

从通用值到字符串的C#转换问题

来自分类Dev

字符串的C ++问题

来自分类Dev

C#中解析大型Xml字符串的最有效方法(扩展DTD引用,添加新行等)

来自分类Dev

C#中字符之间的子字符串

来自分类Dev

C#中的字符串字符差异

来自分类Dev

使用C#计算Cookie字符串中的字符

来自分类Dev

从字符串C#中删除字符

来自分类Dev

C#:字符串中的转义点字符

来自分类Dev

C#:在字符串中查找未知字符

来自分类Dev

C#中的字符串字符差异

来自分类Dev

在C#中按字符反转字符串