zoukankan      html  css  js  c++  java
  • 一周学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);

    ...

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

  • 相关阅读:
    前端开发试题
    操作手册
    border-box有什么用
    npm安装react-dom...
    html-webpack-plugin按需加载的js/css也会被提取出来吗
    洛谷P3957 跳房子(Noip2017普及组 T4)
    【react】利用prop-types第三方库对组件的props中的变量进行类型检测
    React 进入页面以后自动 focus 到某个输入框
    React 更新阶段的生命周期 componentWillReceiveProps->shouldComponentUpdate->componentWillUpdate
    React 生命周期 constructor->componentWillMount->render->componentDidMount->componentWillUnmount
  • 原文地址:https://www.cnblogs.com/lizunicon/p/1380968.html
Copyright © 2011-2022 走看看