一周学C#之第一天——基础知识

 

一周学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可以看到输出内容

C#源文件名不一定要和所包含的类名相同.

C#对大小写敏感,所以Main的首字母M大写(注意与C语言的差别)

可以定义一个返回值为int类型的Main函数,返回0表示成功:
public static int Main(){...return 0;}

可以定义Main函数的返回值为void:
public static void Main(){...}

可以定义Main函数结构一个String类型的数组参数:
public static void Main(String[] args)
{
       foreach(String arg in args){
              System.Console.WriteLine(arg);
       }
}

程序中的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

 

下面5比较特殊,只在某种情况下属于关键字:

get

set

value

add

remove

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          取值

类型

取值

解释

bool

true/false

布尔型

float

3.14

实型

double

3.1415

双精度型

char

‘X’

字符型

int

9

整型

string

“Hello”

字符串

object

null

对象

8          操作符

操作符

类型

+ - * / %(取余数)

算术

&& || ! ?:

逻辑

< <= > >=

关系

== !=

相等

=

赋值

9          编程风格

较正规的编程风格:

       在一个二元操作符的每一边都加一个空格

       在每一个逗号后面而不是前面加一个空格

       每一个关键字后面加一个空格

       一行一个语句

       分号前不要有空格

       函数的圆括号和参数之间不加空格

       在一元操作符和操作数之间不加空格

在一个二元操作符的每一边都加一个空格:
       Console.WriteLine(“{0}”, result/ 13);

在每一个逗号后面而不是前面加一个空格:
       Console.WriteLine(“{0}”, result/ 13);

每一个关键字后面加一个空格:
       if(OneLine(comment))...

分号前面不要有空格:
       Console.WriteLine(“{0}”, result/ 13);

函数的圆括号和参数之间不加空格:
       Console.WriteLine(“{0}”, result/ 13);

在一元操作符和操作数之间不加空格:
       ++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);

...

//第一个错误是标识符不能用数字开头;第二错误是不能用下划线作标识符。

posted @ 2009-01-26 12:22  怒杀神  阅读(384)  评论(0编辑  收藏  举报