人们普遍认为每个类都应该拥有自己的文件.
Program.cs - 该文件将包含应用程序的主要逻辑
我假设当你这样说你的意思是主类在这个文件中.(具有应用程序入口点的类).应该将逻辑的各个部分分开并放在最有意义的类中.
面向对象设计的链接:http:
//www.csharphelp.com/2006/05/designing-object-oriented-programs-in-c/
http://www.informit.com/articles/article.aspx?p=101373
命名空间的链接:http:
//www.csharphelp.com/2006/02/namespaces-in-c/
http://msdn.microsoft.com/en-us/library/dfb3cx8s.aspx
以下是一些帮助您入门的基础知识.=)
您的解决方案的体系结构可能如下所示:
请记住,您必须使每段代码尽可能可重用.通过将业务对象(您的类)编写到一个独立的项目中,这样可以让您稍后将该项目引用到另一个项目中,这样您就不必重新编写所有业务逻辑(方法等)和业务.对象(类,枚举,接口等)
面向对象的设计试图概括对象的每个实际方面,并将其带到业务对象的最顶级类.例如:
// File: Person.cs
public class Person {
public string Name { get; set; }
public string Number { get; set; }
// Some other general properties...
}
// File: Customer.cs
public class Customer : Person {
public Customer() {
Orders = new List<Order>();
}
public string CreditTerm { get; set; }
public IList<Order> Orders { get; }
}
// File: Contact.cs
public class Contact : Person {
public long PhoneNumber { get; set; }
public long FaxNumber { get; set; }
}
// File: Supplier.cs
public class Supplier : Person {
public Supplier() {
Salesperson = new Contact();
}
public Contact Salesperson { get; }
}
Run Code Online (Sandbox Code Playgroud)
还建议您指定每个项目的含义.我们来看一个客户管理应用程序:
MyCompany.MyCustomerMgmtSoftware.Domain <=此项目应包含您的业务类定义
MyCompany.MyCustomerMgmtSoftware.Data <=此项目应包含访问DBRM的数据类.
MyCompany.MyCustomerMgmtSoftware <=此项目通常包含您的GUI
MyCompany.MyCustomerMgmtsoftware.Mappings <=此项目应包含您的映射文件(例如,使用NHibernate时).
这有帮助吗?