一周学C#之第一天——基础知识
2009-01-26 12:22
411 查看
一周学C#_第一天(共分六个部分)
基础概念
1 总体框架
Hiker.cs//类名不一定等于文件名
Using System;//每一个程序必须在开头使用这一句
public sealed class HitchHiker
{
public static void Main()//程序从Main开始执行
{
int result;
result=9*6;
int thirteen;
thirte=13;
Console.Write(result/thirteen);//输出函数
Console.Write(result%thirteen);
}
}
//上面各语句的具体用法以后介绍
/*这个程序用来
*演示C#大总体框架
*/
注意:上面的程序中,符号//表示注释(一行)
/*和*/表示之间的内容都是注释
中Windows命令行提示符之下编译,键入:csc Hiker.cs
编译产生的可执行文件是Hiker.exe
中命令行键入:Hiker可以看到输出内容
l C#源文件名不一定要和所包含的类名相同.
l C#对大小写敏感,所以Main的首字母M大写(注意与C语言的差别)
l 可以定义一个返回值为int类型的Main函数,返回0表示成功:
public static int Main(){...return 0;}
l 可以定义Main函数的返回值为void:
public static void Main(){...}
l 可以定义Main函数结构一个String类型的数组参数:
public static void Main(String[] args)
{
foreach(String arg in args){
System.Console.WriteLine(arg);
}
}
l 程序中的Main函数必须声明为static
2 标识符
标识符-命名规则:
局部变量、局部常量、非公有实例域、函数参数——使用camelCase规则
其他类型的标识符——使用PascalCase规则
privateStyle——camelCase规则(第一单词首字母小写,其他单词首字母大写)
PublicStyle——PascalCase规则(所以单词首字母大写)
尽量不要使用缩写
Message,而不要使用msg
不要使用匈牙利命名法
public sealed class GrammarHelper
{
...
public QualifiedSymbol Optional(AnySymbol symbol)
{...}
private AnyMultiplicity optional=new OptionalMultiplicity();
}
3 关键字
C#中有76个关键字:
下面5个比较特殊,只在某种情况下属于关键字:
C#中有76个中任何情况下都有固定意义的关键字。另外有5个中特定情况下才有固定意义的标识符。
例如:value能用来作为变量名,但是一个一种情况例外(把它作属性/索引器的set语句的时候——它是一个关键字)
如果中关键字前面加@,可以使之成为变量名:int @int=42;
不过在一般情况下,不要这样使用。
还可以使用@来产生跨越几行的字符串(这对于产生正则表达式非常有用),例如:
string patten=@”
( #start the group
abra(cad)? #match abra and optional cad
)+”; #one or more occurrences
如果要在字符串中包含【双引号】,那你可以:string quote=@”””quote”””;
4 标点符号
{ 和 } 组成语句块
分号(;)表示一个语句的结束
using Sytem;
public sealed class Hiker
{
public static void Main()
{
int result;
result=9*6;
Console.Write(result);
}
}
一个C#的“类/结构/枚举“的定义不需要一个终止的分号。
public sealed class Hiker
{...}//没有分号;使正确的
但是中结束大括号后面加分号,对程序没有任何影响:
public sealed class Hiker
{...};//有分号是可以的,但是不推荐
C#不允许在一个函数的定义中,使用结尾分号:
public sealed class Hiker
{
public void Hitch(){...};//注意这个结尾的分号是不允许的
}
5 声明
【声明】是在一个块中引入变量,每个变量有一个标识符和一个类型;每个变量的类型不能被改变。
Using System;
public sealed class Hiker
{
public static void Main()
{
int result;
result=9*6;
int thirteen;
thirte=13;
Console.Write(result/thirteen);//输出函数
Console.Write(result%thirteen);
}
}
声明一个变量有时候是非法的,变量可能不会被用到。例如:
if(...)
int x=42;//编译时出错
else
...
6 表达式
【表达式】是用来计算的:
每个表达式产生一个值;
每一表达式必须只有单边作用;
每个变量只有被赋值后才能使用。
Using System;//每一个程序必须在开头使用这一句
public sealed class HitchHiker
{
public static void Main()//程序从Main开始执行
{
int result;
result=9*6;
int thirteen;
thirte=13;
Console.Write(result/thirteen);//输出函数
Console.Write(result%thirteen);
}
}
C#不允许读取未初始化或者被赋值的变量。
int m;
if(...){
m=42;
}
Console.WriteLine(m);//会引起编译器错误,因为m可能不会被赋值
7 取值
8 操作符
9 编程风格
较正规的编程风格:
在一个二元操作符的每一边都加一个空格
在每一个逗号后面而不是前面加一个空格
每一个关键字后面加一个空格
一行一个语句
分号前不要有空格
函数的圆括号和参数之间不加空格
在一元操作符和操作数之间不加空格
l 在一个二元操作符的每一边都加一个空格:
Console.WriteLine(“{0}”, result/ 13);
l 在每一个逗号后面而不是前面加一个空格:
Console.WriteLine(“{0}”, result/ 13);
l 每一个关键字后面加一个空格:
if(OneLine(comment))...
l 分号前面不要有空格:
Console.WriteLine(“{0}”, result/ 13);
l 函数的圆括号和参数之间不加空格:
Console.WriteLine(“{0}”, result/ 13);
l 在一元操作符和操作数之间不加空格:
++keywordCount;
10 找错
bool checked;
...
//这里的错误:checked是一个关键字
public static void main()
{...}
//这段的错误:不是main,而是Main
int matched=symbol.Match(input)
if(matched>0)
{
...
}
//这段的错误是,matched变量声明语句,没分号
char optional = ”?”;
string theory = ‘complex’;
//字符值,必须用单引号表示;字符串必须要双引号表示
int matched = 0_or_more(symbol);
...
//第一个错误是标识符不能用数字开头;第二错误是不能用下划线作标识符。
基础概念
1 总体框架
Hiker.cs//类名不一定等于文件名
Using System;//每一个程序必须在开头使用这一句
public sealed class HitchHiker
{
public static void Main()//程序从Main开始执行
{
int result;
result=9*6;
int thirteen;
thirte=13;
Console.Write(result/thirteen);//输出函数
Console.Write(result%thirteen);
}
}
//上面各语句的具体用法以后介绍
/*这个程序用来
*演示C#大总体框架
*/
注意:上面的程序中,符号//表示注释(一行)
/*和*/表示之间的内容都是注释
中Windows命令行提示符之下编译,键入:csc Hiker.cs
编译产生的可执行文件是Hiker.exe
中命令行键入:Hiker可以看到输出内容
l C#源文件名不一定要和所包含的类名相同.
l C#对大小写敏感,所以Main的首字母M大写(注意与C语言的差别)
l 可以定义一个返回值为int类型的Main函数,返回0表示成功:
public static int Main(){...return 0;}
l 可以定义Main函数的返回值为void:
public static void Main(){...}
l 可以定义Main函数结构一个String类型的数组参数:
public static void Main(String[] args)
{
foreach(String arg in args){
System.Console.WriteLine(arg);
}
}
l 程序中的Main函数必须声明为static
2 标识符
标识符-命名规则:
局部变量、局部常量、非公有实例域、函数参数——使用camelCase规则
其他类型的标识符——使用PascalCase规则
privateStyle——camelCase规则(第一单词首字母小写,其他单词首字母大写)
PublicStyle——PascalCase规则(所以单词首字母大写)
尽量不要使用缩写
Message,而不要使用msg
不要使用匈牙利命名法
public sealed class GrammarHelper
{
...
public QualifiedSymbol Optional(AnySymbol symbol)
{...}
private AnyMultiplicity optional=new OptionalMultiplicity();
}
3 关键字
C#中有76个关键字:
abstract | as | base | bool | break | byte | case |
catch | char | checked | class | const | continue | decimal |
default | delegate | do | double | else | enum | event |
explicit | extern | false | finally | fixed | float | for |
foreach | goto | if | implicit | in | int | interface |
internal | is | lock | long | namespace | new | null |
object | operator | out | override | params | private | protected |
public | readonly | ref | return | sbyte | sealed | short |
sizeof | stackalloc | static | string | struct | switch | this |
throw | true | try | typeof | uint | ulong | unchecked |
unsafe | ushort | using | virtual | void | while |
get | set | value | add | remove |
例如:value能用来作为变量名,但是一个一种情况例外(把它作属性/索引器的set语句的时候——它是一个关键字)
如果中关键字前面加@,可以使之成为变量名:int @int=42;
不过在一般情况下,不要这样使用。
还可以使用@来产生跨越几行的字符串(这对于产生正则表达式非常有用),例如:
string patten=@”
( #start the group
abra(cad)? #match abra and optional cad
)+”; #one or more occurrences
如果要在字符串中包含【双引号】,那你可以:string quote=@”””quote”””;
4 标点符号
{ 和 } 组成语句块
分号(;)表示一个语句的结束
using Sytem;
public sealed class Hiker
{
public static void Main()
{
int result;
result=9*6;
Console.Write(result);
}
}
一个C#的“类/结构/枚举“的定义不需要一个终止的分号。
public sealed class Hiker
{...}//没有分号;使正确的
但是中结束大括号后面加分号,对程序没有任何影响:
public sealed class Hiker
{...};//有分号是可以的,但是不推荐
C#不允许在一个函数的定义中,使用结尾分号:
public sealed class Hiker
{
public void Hitch(){...};//注意这个结尾的分号是不允许的
}
5 声明
【声明】是在一个块中引入变量,每个变量有一个标识符和一个类型;每个变量的类型不能被改变。
Using System;
public sealed class Hiker
{
public static void Main()
{
int result;
result=9*6;
int thirteen;
thirte=13;
Console.Write(result/thirteen);//输出函数
Console.Write(result%thirteen);
}
}
声明一个变量有时候是非法的,变量可能不会被用到。例如:
if(...)
int x=42;//编译时出错
else
...
6 表达式
【表达式】是用来计算的:
每个表达式产生一个值;
每一表达式必须只有单边作用;
每个变量只有被赋值后才能使用。
Using System;//每一个程序必须在开头使用这一句
public sealed class HitchHiker
{
public static void Main()//程序从Main开始执行
{
int result;
result=9*6;
int thirteen;
thirte=13;
Console.Write(result/thirteen);//输出函数
Console.Write(result%thirteen);
}
}
C#不允许读取未初始化或者被赋值的变量。
int m;
if(...){
m=42;
}
Console.WriteLine(m);//会引起编译器错误,因为m可能不会被赋值
7 取值
类型 | 取值 | 解释 |
bool | true/false | 布尔型 |
float | 3.14 | 实型 |
double | 3.1415 | 双精度型 |
char | ‘X’ | 字符型 |
int | 9 | 整型 |
string | “Hello” | 字符串 |
object | null | 对象 |
操作符 | 类型 |
+ - * / %(取余数) | 算术 |
&& || ! ?: | 逻辑 |
< <= > >= | 关系 |
== != | 相等 |
= | 赋值 |
较正规的编程风格:
在一个二元操作符的每一边都加一个空格
在每一个逗号后面而不是前面加一个空格
每一个关键字后面加一个空格
一行一个语句
分号前不要有空格
函数的圆括号和参数之间不加空格
在一元操作符和操作数之间不加空格
l 在一个二元操作符的每一边都加一个空格:
Console.WriteLine(“{0}”, result/ 13);
l 在每一个逗号后面而不是前面加一个空格:
Console.WriteLine(“{0}”, result/ 13);
l 每一个关键字后面加一个空格:
if(OneLine(comment))...
l 分号前面不要有空格:
Console.WriteLine(“{0}”, result/ 13);
l 函数的圆括号和参数之间不加空格:
Console.WriteLine(“{0}”, result/ 13);
l 在一元操作符和操作数之间不加空格:
++keywordCount;
10 找错
bool checked;
...
//这里的错误:checked是一个关键字
public static void main()
{...}
//这段的错误:不是main,而是Main
int matched=symbol.Match(input)
if(matched>0)
{
...
}
//这段的错误是,matched变量声明语句,没分号
char optional = ”?”;
string theory = ‘complex’;
//字符值,必须用单引号表示;字符串必须要双引号表示
int matched = 0_or_more(symbol);
...
//第一个错误是标识符不能用数字开头;第二错误是不能用下划线作标识符。
相关文章推荐
- C#基础知识回顾--线程传参
- C#基础知识之数据类型
- C#基础知识回顾--线程传参
- C#基础知识积累
- [C#基础知识]关于虚函数Virtual 及 抽象函数Abstract
- C#基础知识回顾
- C#面向对象 基础概念二十五个 (很基础,必须掌握的知识)
- C#基础知识准备
- (转)第一天 XHTML CSS基础知识 文章出处:标准之路(http://www.aa25.cn/div_css/902.shtml)
- C# 自定义控件基础知识
- [C# 基础知识系列]专题十六:Linq介绍
- c#基础知识总结学习
- C#基础知识整理:C#类和结构(1)
- C#基础知识之十二
- 转贴--C#基础知识和有用技巧
- C#学习 基础知识
- C#基础知识整理:基础知识(10) 静态
- C#基础知识
- C#基础知识(十)——对象引用
- C#开发-基础知识及有用技巧