对Visual Studio NewB的建议.重用现有类库

本文关键字:类库 Visual Studio NewB | 更新日期: 2023-09-27 18:36:16

我正在开始我第一次使用Visual Studio的项目体验。我的任务是使用现有解决方案的源,并通过向该解决方案添加新项目来扩展其功能。

我的问题是,除了小的更改外,大部分现有源都会被复制。 我不熟悉Visual Studio,所以我不知道我可以使用哪些节省时间的技术。

在我看来,如果我能复制一些现有的类,并简单地将它们的重命名副本添加到项目中,我可以编辑这些副本,而无需捏造项目中正在运行的部分,那将是理想的。

我应该补充一点,我需要走这么远来复制几乎相同的代码的唯一原因是,如果我在自己的项目中将它们用作依赖项,那么早期项目上使用的命名约定将极具误导性。

如果我开始将现有类的命名空间更改为更通用的命名空间,以便我可以使用它们而不会使我的代码混淆其他人遵循,Visual Studio 是否会维护自己?

Visual

Studio中是否有一种简单的方法来复制旧的类,如果我的新类将有一半的代码是相同的?

欢迎就方法或惯例提出任何建议。顺便说一下,我在Visual Studio 2012 Pro工作,如果对任何人有帮助,该项目主要是用C#编码的。

对Visual Studio NewB的建议.重用现有类库

你的问题很模糊,为了得到更好的答案,你应该举一个你面临的问题的具体例子。

以下是我到目前为止的想法,它们可能会给您一个关于该怎么做的提示:

  • 您可以使用外观模式,通过隐藏糟糕的实现并呈现一个漂亮的实现 http://en.wikipedia.org/wiki/Facade_pattern:

  • 您可以使用扩展方法扩展类:http://msdn.microsoft.com/en-us/library/vstudio/bb383977.aspx

  • 您可以创建特定命名空间的别名

上面描述的一些提示的例子:

using System;
using MyFamiliarNamespace = MyScaryNamespace;
using MyFamiliarClass = MyScaryNamespace.MyScaryClass;
namespace ConsoleApplication1
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var @class = new MyFamiliarClass();
            @class.HelloWorld();
        }
    }
    public static class MyScaryClassExtensions
    {
        public static void HelloWorld(this MyFamiliarClass myScaryClass)
        {
            Console.WriteLine("Hello world !");
        }
    }
}
// Consider this part being in another assembly
namespace MyScaryNamespace
{
    public class MyScaryClass
    {
    }
}
  • 在我看来,你不应该复制类,虽然这似乎是最简单的做法,但迟早会让事情变得更加混乱,记住不要在编程中重复自己。

  • 重命名命名空间 :除非您有像 Resharper 这样的工具,否则手动执行此操作可能会非常痛苦并且容易出错

  • 复制对象
  • (或某种对象):如果您绝对必须复制对象,那么在某些情况下使用Automapper之类的东西可以实时节省。

在您的问题中提供更多详细信息,以便我们提出更好的答案。

给它一个更好的标题也可能是明智的。