对Visual Studio NewB的建议.重用现有类库
本文关键字:类库 Visual Studio NewB | 更新日期: 2023-09-27 18:36:16
我正在开始我第一次使用Visual Studio的项目体验。我的任务是使用现有解决方案的源,并通过向该解决方案添加新项目来扩展其功能。
我的问题是,除了小的更改外,大部分现有源都会被复制。 我不熟悉Visual Studio,所以我不知道我可以使用哪些节省时间的技术。
在我看来,如果我能复制一些现有的类,并简单地将它们的重命名副本添加到项目中,我可以编辑这些副本,而无需捏造项目中正在运行的部分,那将是理想的。
我应该补充一点,我需要走这么远来复制几乎相同的代码的唯一原因是,如果我在自己的项目中将它们用作依赖项,那么早期项目上使用的命名约定将极具误导性。
如果我开始将现有类的命名空间更改为更通用的命名空间,以便我可以使用它们而不会使我的代码混淆其他人遵循,Visual Studio 是否会维护自己?
VisualStudio中是否有一种简单的方法来复制旧的类,如果我的新类将有一半的代码是相同的?
欢迎就方法或惯例提出任何建议。顺便说一下,我在Visual Studio 2012 Pro工作,如果对任何人有帮助,该项目主要是用C#编码的。
你的问题很模糊,为了得到更好的答案,你应该举一个你面临的问题的具体例子。
以下是我到目前为止的想法,它们可能会给您一个关于该怎么做的提示:
-
您可以使用外观模式,通过隐藏糟糕的实现并呈现一个漂亮的实现 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之类的东西可以实时节省。
在您的问题中提供更多详细信息,以便我们提出更好的答案。
给它一个更好的标题也可能是明智的。