【发布时间】:2013-10-22 01:09:06
【问题描述】:
我发现我的编码实践最近在滑倒 - 并注意到自己陷入了一些坏习惯 - 通常是由于我缺乏动力(可能是由于为我设置的任务的空洞性质造成的) - 所以让自己振作起来,我决定自己写,这应该是一个非常简单的基础课程。这里是:
public class Customer
{
public string CUSTOMERNAME;
public List<Site> sites = new List<Site>();
public Customer()
{
}
public void AddSite(Site location)
{
sites.Add(location);
}
}
public class Site
{
public string SITENAME;
public Address SITEADDRESSDETAILS;
public string SITEPHONENUMBER;
public Site(string sitename, Address siteaddress, string tel)
{
SITENAME = sitename;
SITEADDRESSDETAILS = siteaddress;
SITEPHONENUMBER = tel;
}
}
public class Address
{
public List<string> address = new List<string>();
public Address() {
}
public void AddAddressDetail(string line)
{
address.Add(line);
}
}
现在似乎一切正常,但我不禁觉得事情可以做得更好。我已经用以下代码对其进行了测试:
static void Main(string[] args)
{
Customer customer = new Customer();
customer.CUSTOMERNAME = "Max Hammer Ltd";
Address addy = new Address();
addy.AddAddressDetail("1 Edgerail Close");
addy.AddAddressDetail("Greenbushes");
addy.AddAddressDetail("Bluehill");
addy.AddAddressDetail("Surrey");
addy.AddAddressDetail("RH0 6LD");
Site surreyOffice = new Site("Surrey Office", addy, "01737 000000");
addy = new Address();
addy.AddAddressDetail("6 Electric Avenue");
addy.AddAddressDetail("Brixton");
addy.AddAddressDetail("London");
addy.AddAddressDetail("SW4 1BX");
Site brixtonOffice = new Site("Brixton Office", addy, "020 7101 3333");
customer.AddSite(surreyOffice);
customer.AddSite(brixtonOffice);
Console.WriteLine(customer.CUSTOMERNAME);
int numberOfSutes = customer.sites.Count;
for (int i = 0; i < numberOfSutes; i++)
{
Console.WriteLine(customer.sites[i].SITENAME);
foreach (string line in customer.sites[i].SITEADDRESSDETAILS.address)
{
Console.WriteLine(line);
}
Console.WriteLine(customer.sites[i].SITEPHONENUMBER);
}
Console.ReadKey();
}
我对我的Main 课程不满意,我不知道为什么——尽管它可以满足我的要求。有什么提示、指点吗?
【问题讨论】:
-
首先我建议不要使用所有大写变量名
-
public string CUSTOMERNAME;你应该停在那里。 -
对于初学者,请使用一些常见的编程实践,例如私有字段的小写。你可以在这里阅读它们msdn.microsoft.com/en-us/library/vstudio/ff926074.aspx
-
@nuke 这无益且不具建设性。如果您缺乏提供实际可用反馈的动力,StackOverflow 可能不适合您。