你好,我想找一些专家建议如何把我的课分开。请原谅我,这是我学习c#的第五周了,我还很新鲜。我的任务是为一家小说公司创建一个基本的数据库和界面。接口应支持公司成员的基本管理。
唯一的规则是应该有至少2个类。
现在我的问题:-我使用8个成员的类在构造函数头?有没有更好的方法来做到这一点?-社交nb在瑞典是一个日期,我应该创建一个日期类吗?-如果我为每个成员创建一个get和set方法,它将是一个很长的文档,有没有最佳实践?
using System;
class Person
{
private string firstname, lastname, socialnb;
private string email, phone;
private string streetaddress, postcode, city;
public Person(string firstname, string lastname, string socialnb, string, email, string phone, string streetaddress, string postcode, string city)
{
this.firstname = firstname;
this.lastname = lastname;
this.socialnb = socialnb;
this.email = email;
this.phone = phone;
this.streetaddress = streetaddress;
this.postcode = postcode;
this.city = city;
}
public String ToString() // Incomplete
{
return "nt"; // Will include all fields in the class
}
}
你不需要创建一个日期类,在c#中已经有了DateTime类:
DateTime Socialnb;
你可以设置你的日期为当前日期:
Socialnb = DateTime.Now;
声明属性时可以使用:
public string firstname {get; set;} //it's like writing getter and setter in C#
用于重写ToString()方法:
public String ToString()
{
return firstname + " " + lastname; //...
}
您应该指定是使用windows窗体还是WPF作为UI。
你应该使用#region…#endregion分割代码,使其更清晰(一个用于属性,一个用于构造函数,一个用于事件…你的选择)
dotnet中的日期类是DateTime
关于成员,如果在类之外需要它们(似乎是这样,因为您的类似乎是一个Model类),则应该创建(auto)Properties。示例:公共类型名称{get;
有两种更好的方法1. 创建两个独立的类(Person和Address),并在Person中保持Address的引用或2. 使用嵌套类(了解更多:http://msdn.microsoft.com/en-us/library/ms173120.aspx)
示例1:
- <
- 地址/gh>
的人
。firstnameb . lastnamec . socialnbd .电子邮件e .手机
public class Person
{
// constructor takes only person specific data
public Person(string firstname, string lastname, string socialnb,
string, email, string phone)
{
}
// Address Property
Public Address MyAddress {get; set;}
}
地址
。streetaddressb .邮政编码C. city
public class Address
{
public Address(string streetaddress, string postcode, string city)
{
}
}
示例2:
public class Person
{
//keep a reference of Address class
public Address MyAddress {get; set;}
public class Address
{
}
}
拆分类
你可以用下面的方法划分你的类:
using System;
class Person
{
public String FirstName {get; set;}
public String LastName {get; set;}
public String SocialNb {get; set;}
public ContactInfo Contact {get; set;}
public AddressInfo Address {get; set;}
public Person(string firstname, string lastname, string socialnb, string, email, string phone, string streetaddress, string postcode, string city)
{
Contact = new ContactInfo(email,phone);
Address = new AddressInfo(streetaddress,postcode,city);
FirstName = firstname;
LastName = lastname;
SocialNb = socialnb;
}
public String ToString() // Incomplete
{
return "nt"; // Will include all fields in the class
}
class ContactInfo
{
public String Email {get; set;}
public String Phone {get; set;}
public ContactInfo(String email = "", String phone = "")
{
Email = email;
Phone = phone;
}
}
class AddressInfo
{
public String Street {get; set;}
public String Postcode {get; set;}
public String City {get; set;}
public AddressInfo(String street = "", String postcode = "", String city = "")
{
Street = street;
Postcode = postcode;
City = city;
}
}
我在构造函数头部使用8个成员的类-有更好的方法来做到这一点吗?
有几种初始化类成员的方法。你可以使用:
默认参数:
public Person(string firstname="", string lastname="", string socialnb="", string, mail="", string phone="", string streetaddress="", string postcode="", string city=""){}
对象初始化:
Person p = new Person
{
FirstName = "John",
LastName = "Doe",
Contact = new Contact { Email = "johndoe@dot.com", Phone="123432123"}
// ... Initialize remaining field...
}
我应该创建一个日期类吗?
正如你所提到的,社交在瑞典是很重要的。如果你想让你的解决方案国际化,String
将是最好的选择(因为,基本上,社交始终是数字和/或符号链)
如果我为每个成员创建一个get和set方法它将是一个很长的文档
你不必为每个成员实现getter和setter。使用autoproperties:
public String Street {get; set;}