我试图了解C#中的嵌套类.我知道嵌套类是在另一个类中定义的类,我没有得到的是为什么我需要这样做.
在这个stackoverflow回答中,一位评论者提到" 私有嵌套类"可能非常有用,所以我在这篇文章中阅读它们,这些文章倾向于解释嵌套类在技术上如何起作用,但不是为什么要使用它们.
我想我会使用私有嵌套类来处理属于更大类的小助手类,但是我经常需要来自另一个类的辅助类,所以我只需要额外的努力来(1)使嵌套类非-nested或(2)将其公开,然后使用外部类前缀访问它,这两者似乎都是额外的工作,没有任何附加值,因为首先使用嵌套类.因此,一般来说,我真的没有看到嵌套类的用例,除了可能将类更加有条理地组成组,但我也违背了我已经享受的每个文件的一级清晰度.
您以何种方式使用嵌套类来使代码更易于管理,更易读,更高效?
我正在开始对Visual-Studio 2008方式进行单元测试,我想知道class为了测试目的,完成跨装配访问的最佳方法是什么.
基本上,我在一个解决方案中有两个项目:
MyProject中的所有内容当前都具有默认的可访问性,如果我没记错,这意味着一切都是有效的internal.我主要是想在这个class级别进行测试,但是有一些delegates涉及.
将来某个时候可能会有一个外部API,但我大约有20%的功能完整(至少在纸面上)并且我非常谨慎地在这个未经测试的核心上层叠更多代码.因此,我想在应用程序完成足够传统(读取:坏和/或懒惰)功能测试之前完成一些测试,并且肯定在版本n + 1外部API启动之前完成.
除了直接的答案,我们将非常感谢解决方案的一个例子.
我想如果一个类只在另一个类中实例化,那么在该类中嵌套使用它是正确的.我认为这将有助于我们良好的设计.当我看到我的项目时,我几乎从未见过这样的嵌套结构.但是,如果我尝试嵌套类,那么这次我脑子里会出现另一个问题.例如
我有Board类,Move类,如ShortCastle,LongCastle,EnPassant,Promote和Pieces,如Pawn,Queen,Rook,Knight等.很明显,Board类将实例化Piece类,Piece类将实例化Move类.对于一个好的设计,Promote移动类应该嵌套Pawn,因为只有pawn可以提升自己.short和long Castles应该嵌套King,因为只有king可以有这样的类型移动.
试图将所有Piece类放入Board类并不是很好的设计,因为8-9类将在Board类中,并且它真的很烦人,一个Board类文件太大而且难以读取.我更喜欢将每个类保持在另一个类中文件.很好,我们可以创建部分董事会类但仍然不烦恼8-9部分董事会类文件将持有每个类的类?最好不要让它们嵌套吗?相同的部分为另一个Move类创建另一个部分Piece文件?如果嵌套类只占用很小的空间,那么它不会有任何问题,但是如果需要很多方法呢?
具体来说,任何人都可以给我具体的例子,说明何时或何时不使用嵌套类?
我永远都知道这个功能,但从来没有理由使用它.
谢谢.
我有一个类A,其内部类定义为A1,类B的内部类定义为B1.你认为它的实现中的A类是指B1,B类是指A1是否正常.这不是一个糟糕的编程风格吗?它只是A1非常特定的类和B1非常B特定,这就是为什么我耦合它们.将A1和B1作为单独的类可以保留它或者更好吗?你怎么看?谢谢.
想知道何时在C#中使用嵌套类是正确的?我们是否有使用它的事件是不合理的,因此不正确?
如果你能给出两种情况的例子谢谢
我正在尝试研究c#中的嵌套类.在阅读了许多文档和goggling之后,我还不清楚何时使用嵌套类.但据我所知,我做了一个小样本程序.我在下面粘贴我的代码.这个嵌套类程序是否以正确的逻辑实现?.实际上嵌套类用于什么?而且我对这个程序有疑问,我在程序中指出了这个疑问.请帮我 ...
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Bank bankObj = new Bank();
bankObj.CreateAccount();
bankObj.ShowMyAccountNumber();
}
}
class Bank
{
static int accountNumber; // here if I just declare this as int accountNumber without static it showing an error in the CreatePersonalAccount(int accNo) method's first line ie accountNumber = accNo; as "Cannot access a non-static member of outer type." What actually this error mean ?
public class BankAccountSection
{
public bool CreatePersonalAccount(int accNo)
{
accountNumber …Run Code Online (Sandbox Code Playgroud) c# ×7
nested-class ×6
.net ×1
class ×1
class-design ×1
coding-style ×1
java ×1
nested ×1
unit-testing ×1