您的位置:首页 > 编程语言 > C#

1.C#编程指南-在C#程序内部

2012-03-16 17:25 253 查看
[b]Main方法[/b]

C#控制台应用程序必须包含一个Main方法,用于控制程序的开始和结束。在Main方法中创建对象和执行其他方法。

Main方法是驻留在类或结构内的static方法。可以用下列方式之一声明Main方法:

1.该方式返回void

static void Main()
{
//...
}


2.它还可以返回整数

static int Main()
{
//...
return 0;
}


3.对于任意一个返回类型,它可以带有参数

static void Main(string[] args)
{
//...
}
- 或 -
static int Main(string[] args)
{
//...
}


Main方法的参数是字符串数组args,该数组包含用于激活程序的命令行参数。

[b]输入和输出[/b]

C#程序通常使用.NET Framework的运行库提供的输入/输出服务。System.Console.WriteLine("Hello World!");语句使用WriteLine方法。此方法是运行库
中的Console类的输出方法之一。它显示了标准输出流使用的字符串参数,输出流后面跟一个新行。其他Console方法用于不同的输入和输出操作。

[b]C#程序的通用结构[/b]

C#程序可由一个或多个文件组成。每个文件都可以包含零个或零个以上的命名空间。一个命名空间除了可包含其他命名空间外 ,还可以包含类、结构、接口、枚举、委托等类型。

[b]C#命名规范[/b]

命名指南在名称准则中介绍

[b]布局约定[/b]
1.使用默认代码编辑器设置(智能缩进、四字符缩进、将制表符保存为空格)。请参见“选项”->“文本编辑器”->“C#”->“格式设置”。

2.每行仅编写一个语句。

3.每行仅编写一个声明。

4.如果续行不自动缩进,将它们缩进一个制表位(四个空格)。

5.在方法定义和属性定义之间添加至少一个空白行。

6.使用括号突显表达式中的子句,如下面的代码所示。

if( (val1 > val2) && (val1 > val3) )
{
//...
}


[b]注释约定[/b]

1.将注释放到另一行,而不要放在代码行的末尾。

2.以大写字母作为注释文本的开头。

3.以句点结束注释文本。

4.在注释分隔符(//)和注释文本之间插入一个空格。

5.请勿在注释周围创建已设置格式的星号块。

语言指南

String数据类型

1.使用 + 运算符来连接短字符串,如以下代码所示。

string displayName = nameList
.LastName + ", " + nameList
.FirstName;


2.若要在循环中附加字符串,尤其是在您处理大量文本时,请使用StringBuilder对象。

var phrase = "lalalalalalalalalalalalalalalalalalalalalalalalalalalalalala";
var manyPhrases = new StringBuilder();
for (var i = 0; i < 10000; i++)
{
manyPhrases.Append(phrase);
}


隐式类型化局部变量

1.如果赋值语句右侧的变量类型十分明显,或在精确的类型并不重要时,使用隐式类型的局部变量

var var1 = "This is clearly a string.";
var var2 = 27;
var var3 = Convert.ToInt32(Console.ReadLine());


2.赋值语句右侧的类型不明显时,不要使用var。

int var4 = ExampleClass.ResultSoFar();


3.不要依赖变量名来指定变量的类型,这可能是不正确的。

var inputInt = Console.ReadLine();
Console.WriteLine(inputInt);


4.避免使用var取代dynamic。

5.使用隐式类型在for和foreach循环中确定循环变量的类型。

View Code

//1.对于查询变量使用有意义的名称。下面的示例使用seattleCustomers代表地处西雅图的客户。
var seattleCustomers = from cust in customers
where cust.City == "Seattle"
select cust.Name;

//2.使用别名以确保通过Pascal大小写格式正确设置匿名类型的属性名称的大小写。
var localDistributors =
from customer in customers
join distributor in distributors on customer.City equals distributor.City
select new { Customer = customer,Distributor = distributor};

//3.在结果中的属性名称不明确时重命名属性。例如,如果查询返回一个客户名称和一个分销商ID,不要在结果中将它们保留为Name和ID,
//而是将它们重命名,以阐明Name是客户的名称,ID是分销商的ID。
var localDistributors2 =
from cust in customers
join dist in distributors on cust.City equals dist.City
select new {CustormerName = cust.Name,DistributorID = dist.ID};

//4.使用隐式类型来声明查询变量和范围变量。
var seattleCustomers = from cust in customers
where cust.City == "Seattle"
select cust.Name

//5.将查询子句对齐在from子句下方,如前面的示例所示。

//6.在其他查询子句前面使用where子句,以确保对一组经过简化和筛选的数据执行后面的查询子句。
var seattleCustomers = from cust in customers
where cust.City == "Seattle"
orderby cust.Name
select cust;

//7.使用多个from子句而不是一个join子句来访问内部集合。例如,在Student对象集合中,每个对象可能都包含一个考试成绩集合。
//在执行下面的查询时,它将返回每一个超过90的分数,以及获得该分数的学生的姓氏。
var scoreQuery = from student in students
from scoe in student.Scores
where scoe > 90
select new {Last = student.LastName,score};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: