Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 有没有办法制作一个代码区域;只读;在VisualStudio中?_Visual Studio_Readonly - Fatal编程技术网

Visual studio 有没有办法制作一个代码区域;只读;在VisualStudio中?

Visual studio 有没有办法制作一个代码区域;只读;在VisualStudio中?,visual-studio,readonly,Visual Studio,Readonly,每隔一段时间,我都会修改一段代码,我想“锁定”或使代码区域“只读”。这样,我修改代码的唯一方法就是先解锁代码。有没有办法做到这一点 将代码拆分为单独的文件,然后签入源代码管理系统?在许多情况下,最简单的方法是将其设置为部分类型,即一个类,其源代码分布在多个文件中。然后,可以将一个文件设置为只读,另一个文件设置为可写 要声明分部类型,只需在声明中使用partial上下文关键字: // MyClass.First.cs: public partial class MyClass { void

每隔一段时间,我都会修改一段代码,我想“锁定”或使代码区域“只读”。这样,我修改代码的唯一方法就是先解锁代码。有没有办法做到这一点

将代码拆分为单独的文件,然后签入源代码管理系统?

在许多情况下,最简单的方法是将其设置为部分类型,即一个类,其源代码分布在多个文件中。然后,可以将一个文件设置为只读,另一个文件设置为可写

要声明分部类型,只需在声明中使用
partial
上下文关键字:

// MyClass.First.cs:
public partial class MyClass
{
    void Foo()
    {
        Bar();
    }

    void Baz()
    {
    }
}

// MyClass.Second.cs:
public partial class MyClass
{
    void Bar()
    {
        Baz();
    }
}
正如您所看到的,它最终就像源文件都在同一个文件中一样——您可以从一个文件调用另一个文件中声明的方法,而不会有任何问题。


我考虑过这个问题,但我更愿意将类保存在一个文件中丹明


对不起,麦克。作为SVN预提交的一点伏都教可能会捕获它,但除此之外没有其他解决方案,除非
//如果您更改此代码,您将被解雇

将其编译到库dll中,并使其可供其他项目参考。

鉴于您对部分类的反驳。。。据我所知,在一个单一的文件中,缺少文档是不可能的。其他选择

  • 继承;但是基类中的受保护代码(在您控制的程序集中);继承者只能调用
    公共
    /
    受保护的
    成员
  • -将受保护逻辑粘贴到外部声明的属性中

但是,这两种方法仍然需要多个文件(可能还需要多个程序集)。

如果您使用的是版本控制系统,则完全不需要这样做。因为一旦你签入了它,不管你编辑代码的哪一部分,你总是可以区分或者回滚。见鬼,你可能会不小心把所有的源代码都删除了,然后又把它取回


我得到了一个非常糟糕的“”,因为您希望锁定代码的某些部分。我猜,也许你在一个类中做的太多了,在这种情况下,把它重构成一组合适的类。visual studio存在10多年后,此功能不可用,这一事实应该表明,您希望这样做的原因可能是设计不佳。

我考虑过这一点,但我更愿意将类保存在一个文件中。如果是这样,您就不走运了。把它放在一个区域中,说“警告:不要编辑”并折叠该区域。也许你可以为VS编写一个插件,以检查当某个区域正在扩展时,该区域名称是否以某个关键字开头?编写VS插件有多困难?我不知道。我以前从未做过。抱歉。您可能需要从DevExpress()检查DXCore