Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.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# - Fatal编程技术网

C# 在C语言中给一个对象一个方法#

C# 在C语言中给一个对象一个方法#,c#,C#,有没有可能给出一个C#对象,比如 public string Name { get { return _name; } set { _name = value; } } 执行以下操作的方法: private void addTextToName(){ _name = _name + " - Test"; } 所以我可以这样称呼它 Name.addTextToName(); 因为(我来自哪里)在JavaScript中,你可以用.prototype做这样的事情 在C#中有什么方法可

有没有可能给出一个C#对象,比如

public string Name
{
  get { return _name; }
  set { _name = value; }
}
执行以下操作的方法:

private void addTextToName(){
  _name = _name + " - Test";
}
所以我可以这样称呼它

Name.addTextToName();
因为(我来自哪里)在JavaScript中,你可以用.prototype做这样的事情

在C#中有什么方法可以做到这一点吗?

是的,C#对象有一种方法(您在那里使用了一个字符串,但是…)

看看C#中所谓的“扩展方法”,因为我认为它们正是您所需要的

如需进一步参考,请参见此处:(神奇之处在于作为方法参数的
this

如果您询问我是否可以向字符串添加方法?那么是的。看看扩展方法

public static string AddTextToName(this string s)
{
    return s + " - Test";
}
像这样使用它:

"Hello".AddTextToName();

将使用扩展方法返回Hello-test

class Program
{
    static void Main()
    {
        Example e = new Example();
        e.Name = "Hello World";
        var x = e.Name;
        var y = x.addTextToName();
        Console.WriteLine(y);
        Console.ReadLine();
    }

}
class Example
{
    public string _name;
    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }
}
public static class MyExtensions
{
    public static string addTextToName(this string str)
    {
        return str += " - Test";
    }
}

在您的示例中,
Name
是一个
字符串,而不是一个类。