用C#编写代码段分隔符的更优雅的方法?
在C#中,当我有不同的代码部分,如常量、API函数、帮助函数等时,我会将它们分开。我通常会这样使用:用C#编写代码段分隔符的更优雅的方法?,c#,coding-style,C#,Coding Style,在C#中,当我有不同的代码部分,如常量、API函数、帮助函数等时,我会将它们分开。我通常会这样使用: public class Foo { //================== Constants ================== private const string VIP = "Cob H."; private const int IMPORTANT_NUMBER = 23; //================== API
public class Foo {
//================== Constants ==================
private const string VIP = "Cob H.";
private const int IMPORTANT_NUMBER = 23;
//================== API Functions ==================
[WebMethod(MessageName = "SomeInformation")]
public string SomeInformation() {
return VIP + " is dead.";
}
//================== Inner Classes ==================
private class IrrelevantClass {
public string Name { get; set; }
public string City { get; set; }
}
}
public class Foo {
#region Constants
private const string VIP = "Cob H.";
private const int IMPORTANT_NUMBER = 23;
#endregion
#region API Functions
[WebMethod(MessageName = "SomeInformation")]
public string SomeInformation() {
return VIP + " is dead.";
}
#endregion
#region Inner Classes
private class IrrelevantClass {
public string Name { get; set; }
public string City { get; set; }
}
#endregion
}
有没有一种优雅的方式来划分它们,而不是使用一堆丑陋的评论?就像在Objective-C中一样,您可以使用
#pragma mark - Inner Classes
我查看了C#中的所有关键字,没有一个看起来很有前途。您可以使用
#region
允许您指定一块代码,在使用Visual Studio代码的大纲功能时可以展开或折叠该代码块
编辑
C#具有类似的功能。要使用区域,您的代码看起来有点像:
public class Foo {
//================== Constants ==================
private const string VIP = "Cob H.";
private const int IMPORTANT_NUMBER = 23;
//================== API Functions ==================
[WebMethod(MessageName = "SomeInformation")]
public string SomeInformation() {
return VIP + " is dead.";
}
//================== Inner Classes ==================
private class IrrelevantClass {
public string Name { get; set; }
public string City { get; set; }
}
}
public class Foo {
#region Constants
private const string VIP = "Cob H.";
private const int IMPORTANT_NUMBER = 23;
#endregion
#region API Functions
[WebMethod(MessageName = "SomeInformation")]
public string SomeInformation() {
return VIP + " is dead.";
}
#endregion
#region Inner Classes
private class IrrelevantClass {
public string Name { get; set; }
public string City { get; set; }
}
#endregion
}
如果您使用的是Visual Studio,则C#编辑器允许您折叠区域,从而更容易浏览大型源文件。您可以使用#区域,但也有一些与之相关的缺点,如人们倾向于将脏代码隐藏在其下或隐藏一些长时间的哭闹方法
我对您的方法也很满意,但基本上编写代码的方式不需要隐藏在区域下
如果你想让它可读,那么根本不需要分隔符 我尝试使用#region
,但我不喜欢使用Ctrl+M,O(折叠到定义热键)来折叠区域,这样我就无法轻松看到每个区域中都有哪些函数/成员。我尝试使用块注释,但这些注释也会崩溃
我提出了自己的高可视性多行分隔符,在使用“塌陷到定义”时不会塌陷。也许其他人会发现这个想法很有用:
#区域常数#endregion
?哇,我真的很惊讶你们在这里回答问题的速度,所以,当我5分钟后回来看到所有的答案和投票时,我有一种错觉,在问了这个问题之后,我已经睡了一个晚上,然后才醒来。我要补充的唯一一件事是,你应该在#endregion指令(即#endregion常量)上输入区域的名称。这样,如果这个区域有点长,而你在底部,你就知道你在哪里。我强烈不同意你最后的评论。区域不是(也不应该)关于可读性,而是关于组织代码和处理感兴趣的区域,而不显示文件的其余部分。