每隔一段时间,我就完成了一段代码的修改,我想“锁定”或将代码区域设为“只读”。这样,我可以修改代码的唯一方法是先解锁它。有没有办法做到这一点?
danmine
问问题
1454 次
6 回答
5
在许多情况下,最简单的方法是使其成为部分类型- 即其源代码分布在多个文件中的单个类。然后,您可以使一个文件只读而另一个可写。
要声明部分类型,只需partial
在声明中使用 contextual 关键字:
// MyClass.First.cs:
public partial class MyClass
{
void Foo()
{
Bar();
}
void Baz()
{
}
}
// MyClass.Second.cs:
public partial class MyClass
{
void Bar()
{
Baz();
}
}
正如你所看到的,它最终就像源都在同一个文件中一样——你可以毫无问题地从另一个文件中调用在一个文件中声明的方法。
于 2009-01-25T19:48:35.167 回答
2
将其编译成库 dll,供其他项目参考。
于 2009-01-25T20:24:38.153 回答
1
将代码拆分为单独的文件,然后检查到源代码控制系统?
于 2009-01-25T19:47:23.533 回答
1
鉴于您对部分课程的反驳......我无法在单个文件中知道,缺少文档。其他选择?
- 遗产; 但是基类中的受保护代码(在您控制的程序集中);继承者只能调用
public
/protected
成员 - postsharp - 将受保护的逻辑粘贴在外部声明的属性中
但是,这两个仍然需要多个文件(可能还有多个程序集)。
于 2009-01-25T20:25:50.053 回答
0
如果您使用的是版本控制系统,这完全没有必要。因为一旦您将其签入,无论您编辑代码的哪一部分,您都可以随时进行差异化或回滚。哎呀,您可能会不小心清除了所有源代码,但仍然可以将其取回。
由于您想锁定代码的某些部分,我得到了一种非常糟糕的“代码气味”。我猜也许你在一个类中做的太多了,在这种情况下,将它重构为一组适当的类。事实上,在视觉工作室已经存在 10 多年之后,此功能不可用,这应该表明您这样做的愿望可能是设计不佳的结果。
于 2009-03-08T21:37:02.007 回答
0
我考虑过这一点,但我更愿意将课程保存在一个文件中。– 丹明
对不起,麦克。作为 SVN 预提交的一点巫术可能会抓住它,但除此之外没有其他解决方案
// 如果您更改此代码,您将被解雇
于 2009-01-25T20:18:34.607 回答