C# in a Nutshell 系列(3)C#语言基础

1 第一个C#程序

using System;   //导入名空间

    class test      // 类名
    {
        static void Main() // 函数名,主函数是程序入口点
        {
            int x = 12 * 30;    //语句1
            Console.WriteLine(x); //语句2
            Console.ReadKey(); //语句3
        } //函数结束
    } //类结束

C#的编译器名叫csc.exe.我们还可以用集成开发环境IDE,比如visualStudio来编译我们的C#程序。

csc myFirstProgram.cs

或者编译成库.dll

csc /target:library MyfirstProgram.cs


2 语法

C#的语法受C和C++语法的启发,比较接近。用下面的程序描述C#语法的基本要素:

using System;

Class Test

{

       static void Main()

        {

                int x = 12 *30;

                Console.WriteLine(x);

        }

}

2.1 标识符和关键字

标识符是程序员给类、方法和变量起的名字。比如在例子程序中,它们出现有:

System  Test Main x Console WriteLine

C# 标识符与C语言一样也是大小写敏感的。

关键字是编译器保留下,不能够用作一般标识符。例子中的关键字有:

using class static void int

下面是C#中所有的关键字:

abstract        do        in        protected        true

as        double        int        public        try

base        else        interface        readonly        typeof

bool        enum        internal        ref        uint

break        event        is        return        ulong

byte        explicit        lock        sbyte        unchecked

case        extern        long        sealed        unsafe

catch        false        namespace        short        ushort

char        finally        new        sizeof        using

checked        fixed        null        stackalloc        virtual

class        float        object        static        void

const        for        operator        string        volatile

continue        foreach        out        struct        while

decimal        goto        override        switch

default        if        params        this

delegate        implicit        private        throw

2.2 避免冲突

有时候确实需要用到与关键词一样的标识符,这样就会产生冲突,我们可以在前面加一个@符号前缀,比如,

class class {...} //非法

class @class {...} //合法

2.3 上下文关键字

有些关键字是基于上下文的,也就是说可以同时用于一般标识符而不必额外添加@符号,它们有:

add        dynamic        in        partial        where

ascending        equals        into        remove        yield

async        from        join        select

await        get        let        set       

by        global        on        value

desending        group        orderby        var

2.4 文字,标点与操作

数字是程序的数字部分,比如例子程序中用到两个数字12与30;

标点有助于程序结构的分析,比如在例子程序用到

{  } ;

大括号可以将多个语句合成一个语句块;

分号终止一个语句。

语句可以多行表示。

一个操作可以转换和组合表达式,比如

. () * =

2.5 注释

分为单行注释//与多行注释/**/,跟c与C++一样

int x=3; // 将3赋值给变量x

int x=3;/*将3赋值

                给变量x*/

3 类型基础

    类型定义了一个值的蓝图。我们可以用int 类型的值常数,也可以用int类型的变量。

变量声明了一个存储不同值得存储空间;常量一般存储同样得的值。

int x = 12*30;  //变量

const int y =360;    //常量

C#中的所有值都是类型的实例。可以把类型理解为值的值域。

3.1 预定义类型例子

  • int

int x = 12;

  • string

string message =  "Hello world";

  • bool

bool simpleVar = false;

在C#中预定义类型就是指的内置类型,可以由C#的关键字识别。在.NET框架中的system名空间中还有很多重要的类型不是预定义的,比如DateTime。

3.2 客制化(自定义)类型例子

using System;

public class UnitConverter
{
    int ratio;
    public UnitConverter (int unitRatio) {ratio = unitRation;}
    public int Convert (int unit) {return unit * ratio;}
}

class Test
{
    static void Main()
    {
        UnitConverter feetToInchesConverter = new UnitConverter(12);

        Console.WriteLine(feetToInchesConverter.Convert(30));

    }
}

3.3 类型的成员

类型包含数据成员与方法成员。

上面的例子中UnitConverter

数据成员ratio

方法成员有:

1)Convert

2)UnitConvert,也是构造函数

3.4 内置类型与自定义类型的相似性

    C#一个美丽之处就是内置内型与自定义类型并没有多大差别。

比如int 类型它容纳32位的数据,并且提供操作这个数据的函数,比如ToString。

类似的UnitConverter类型给单位转换用的一个蓝图。有成员数据ratio,且有成员函数来使用ratio。

3.5 构造函数与实例化

4 数字类型

5 布尔类型和操作

6 字符串和字符

7 数组

8 变量和参数

9 表达式和参数

10 申明

11 名空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值