在C#中为对象提供一个方法

时间:2015-03-22 15:16:14

标签: c#

是否可以像

那样提供C#对象
public string Name
{
  get { return _name; }
  set { _name = value; }
}

方法做类似的事情:

private void addTextToName(){
  _name = _name + " - Test";
}

所以我可以像

一样调用它
Name.addTextToName();

因为(我来自哪里)你可以使用.prototype

来做这些事情

有没有办法在C#中执行此操作?

3 个答案:

答案 0 :(得分:3)

如果您要求我可以在字符串中添加方法吗?然后是。看看扩展方法。

public static string AddTextToName(this string s)
{
    return s + " - Test";
}

像这样使用:

"Hello".AddTextToName();

将返回Hello - test

答案 1 :(得分:1)

是的,C#Objects有一种方法(你在那里使用了一个字符串,但是......)。

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

如需进一步参考,请查看这里:https://msdn.microsoft.com/en-us/library/vstudio/bb383977%28v=vs.110%29.aspx(魔法在this作为方法的参数)

答案 2 :(得分:0)

使用扩展方法。

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";
    }
}