将方法添加到另一个项目的 class

Add method to a class from another project

是否可以从另一个项目向 class 添加方法?

我有一个 class:

namespace ProjectLibrary
{
    public class ClassA
    {
        // some methods
    }
}

我想添加一个方法来将我的对象保存在一个文件中,但是我不想在我的项目中添加这个方法ProjectLibrary因为我不想添加对[=27的引用=](我想将此项目用于 android 应用程序和 PC 应用程序)。

是否可以添加一个方法 SaveToFile() 只能在另一个项目中使用?或者在ClassA中创建一个抽象方法,但在其他项目中定义它。

像这样:

using ProjectLibrary;
namespace ProjectOnPC
{
    void methodExample()
    {
        ClassA obj = new ClassA();
        // do something
        obj.SaveToFile();// => available only in namespace ProjectOnPC
    }
}

感谢您的帮助

您可以使用扩展方法。

示例:

namespace ProjectOnPC
{
    public static void SaveToFile(this Class myClass)
    {
      //Save to file.
    }
}

您要找的东西叫做 Extension method:

基础代码 class:

namespace ProjectLibrary
{
    public ClassA
    {
        // some methods
    }
}

扩展方法:

using ProjectLibrary;
namespace ProjectOnPC
{
    void SaveToFile(this ClassA Obj, string Path)
    {
        //Implementation of saving Obj to Path
    }
}

正在调用您的程序:

using ProjectLibrary;
using ProjectOnPc; //if You won't include this, You cannot use ext. method

public void Main(string[] args)
{
    ClassA mObj = new ClassA();
    mObj.SaveToFile("c:\MyFile.xml");
}

您可以为此创建一个扩展方法

这是一个例子。
在您的 ProjectOnPc 命名空间中创建一个 class,如下所示:

public static class ClassAExtension
{
    public static void SaveToFile(this ClassA obj)
    {
        // write your saving logic here.
        // obj will represent your current instance of ClassA on which you're invoking the method.
        SaveObject(obj).
    }
}

您可以在此处了解有关扩展方法的更多信息:
https://msdn.microsoft.com/en-us//library/bb383977.aspx