c#学习<一> 基础知识

http://www.25hoursaday.com/CsharpVsJava.html

ECMA-334

关键字

     累计103 个,其中关键字77个,上下文关键字26个。(c#5.0)

 

标识符

   1. 与C语言相比,标识符中可包含@符号: @class。    

            对比记忆: JavaScript中的$符号,swift中则通过'class' 来使用关键字做标识符。

   2. 遵循C#的Pascal命名法,入口函数Main方法,首字母大写。

控制台输入输出

static void Main(string[] args)
{
    //ReadLine
    string x = Console.ReadLine();
    Console.WriteLine(x);

    //ReadKey
    ConsoleKeyInfo key;
    while ((key = Console.ReadKey()).Key != ConsoleKey.Enter)
    {
        //使用索引占位符
         Console.WriteLine("
按键为{1}键{0}{0}", "!", key.KeyChar);
         Console.WriteLine($"
按键为{ key.KeyChar}键{"!"}{"!"}");//6.0
    }

    //Read 返回与读取到的字符相对应的数值,且不按回车键,不会返回输入
    //,如果按回车前用户输入了多个字符,取第一个
    char c = (char)Console.Read();
    Console.Write(c);

    Console.ReadKey();
}

  索引占位符的索引(从零开始)必须大于或等于零,且小于参数列表的大小。可以任意顺序在字符串中出现,同一个占位符可以使用多次, 可以忽略占位符(不传入参数列表),但每个占位符都必需带一个参数

Console.WriteLine("
按键为{1}键{0}{0}{3}", "!", key.KeyChar);  //报错
Console.WriteLine("
按键为{1}键{0}{0}{3}");                              //ok

注解  

 c#中注解有4类:/**/,// ,/** */,/// 

 后两种注释为XML注释,可以导出

C#和.net版本

版本語言規格日期.NET框架的版本Visual Studio的版本
ECMAISO/IECMicrosoft
C# 1.0 2002年12月 2003年四月 2002年一月 2002年一月 .NET Framework 1.0 Visual Studio .NET 2002
C# 1.2 2003年十月 2003年四月 .NET Framework 1.1 Visual Studio .NET 2003
C# 2.0 2006年六月 2006年九月 2005年九月 2005年11月 .NET Framework 2.0 Visual Studio 2005
C# 3.0     2007年八月 2006年11月 .NET Framework 3.5 Visual Studio 2008
C# 4.0     2010年四月 2010年四月 .NET Framework 4 Visual Studio 2010
C# 5.0     2012年十月 2012年4月 .NET Framework 4.5 Visual Studio 2012
.NET Framework 4.5.1 Visual Studio 2013
C# 6.0     2015年七月 2015年7月 .NET Framework 4.6 Visual Studio 2015

操作符

c#中操作数总是从左向右求值

A() + B() * C() : 求值顺序从左到右,不会因为乘法优先级高就先求解B(),C()

而类似的c/c++则并没有规范求值顺序,某些表达式,不同的编译器会得出不同的结果。

避免将二进制浮点类型用于相等性条件式

要么判别两个值之差是否在容差范围内,要么使用decimal类型

二进制浮点数除以零,结果为NaN,但int和decimal等数据类型除以零会报错

类似的还有System.Math.Sqrt(-1),获取负数的平方根也会得到一个负数

浮点数的正负无穷,-Infinity, Infinity

负零和正零

C#中可以重载运算符

原文地址:https://www.cnblogs.com/wj033/p/4481006.html