zoukankan      html  css  js  c++  java
  • 艾伟:C#基本语法简介 狼人:

    一、系统数据类型和C#简化符号

      和各任何编程语言一样,C#定义了一组内建数据类型。每种类型都有对应的C#关键字、取值范围和作用,如系统类型中表示真实的或者虚假的类型为 System.Boolean,C#简化符号为bool,范围true或false;又如uint对应的系统类型是System.UInt32,范围 0~4294967295,代表一个无符号的32位数。其中bool是遵循CLS(公共语言规范),而uint则不遵循CLS(符合CLS的.NET代码可以被任何托管编程语言使用,不止是C#,还有VB.NET和托管C++等)。

      C#内建的系统型有15个,请查看.NET Framework 3.5文档来熟悉它们。

    二、变量声明和初始化。

      如果要声明一个数据类型作为变量,可以通过在变量名之前指定类型来实现,还可以使用全名分配数据类型。如:

    bool mybool = false;

    string myString;

    myString
    = "This is a string.";

    System.Int32 i1
    = 0, i2, i3 = 56;

      在使用变量前必须先对变量赋值,否则会收到一个编译错误(如上文加上" i2 = i2 +5 ",是不能通过编译的)。内建数据类型还支持构造函数(对于构造函数,后面章节会有介绍),这不允许我们使用new关键字来创建变量,它将变量自动设置为其默认值:
    int i4 = new int(); // i4设置为0。

    i4
    = i4 + 5 ; // i4现在的值为5。

    三、数据转换

      不同类型的数据是可以转换的。

      按转换前后的数据的位数变化可分为窄化转换和宽化转换:当一种类型的值转换为大小相等或更大的另一类型时,则发生宽化转换(也叫扩大转换);当一种类型的值转换为较小的另一种类型时,则发生窄化转换(也叫收缩转换)。宽化转向不会导致数据丢失,因此允许隐式进行。但窄化转换因为有数据丢失的风险(称为溢出),将导致编译错误。如果希望通知编译器我们想要处理窄化运算引起的可能的数据丢失,就必须使用C#强制转换运算符()来进行显式强制转换:
    byte myByte = 0;

    int myInt = 200;

    myByte
    = (byte)myInt;

      如果我们在构建一个不能接受数据丢失的应用程序,C#提供的checked关键字将确保数据丢失肯定会被检测到。

    myByte = checked(byte)myInt;

      如果发生数据丢失,将发生一个运行时异常(对于异常,后面将深入讨论)。另外,C#编译器还提供/checked标志,可以设定项目级别的溢出检测。与checked相对的还有unchecked关键字,请查阅相关文档进行了解。

    四、运算符

      C# 提供大量运算符,这些运算符是指定在表达式中执行哪些操作的符号。通常允许对枚举进行整型运算,例如 ==、!=、<、>、& lt;=、>=、^、&、|、~、++、-- 和 sizeof()。此外,很多运算符可被用户重载,由此在应用到用户定义的类型时更改这些运算符的含义。各运算符的用法及优先级,请查阅相关文档。

      新增的运算符??:如果 ?? 运算符的左操作数非 null,该运算符将返回左操作数,否则返回右操作数。

      另一个新增的Lambda运算符(=>)会在后面章节中讲述。

    五、流程控制

      1.C#迭代结循环构

      除了基本的for循环,while循环及do/while循环,C#还允许通过使用foreach关键字遍历数组中的所有项:
    string[] carTypes = {"Ford","BMW","Yugo","Honda"};

    foreach(string c in carTypes)

    Console.WriteLine(c);


      2.C#条件结构

      if/else语句。C和C++的程序员要注意,C#中的if/else语句只能作用于布尔表达式,不能用于诸如-1、0这样的值。

      switch语句。C#switch语句一个不错的特性是,除了数值数据之处,我们还可以运算字符串数据:

        static void ExecuteSwitchOnString()
    {
    Console.WriteLine(
    "C# or VB");
    Console.Write(
    "Please pick your language preference: ");

    string langChoice = Console.ReadLine();
    switch (langChoice)
    {
    case "C#":
    Console.WriteLine(
    "Good choice, C# is a fine language.");
    break;
    case "VB":
    Console.WriteLine(
    "VB .NET: OOP, multithreading and more!");
    break;
    default:
    Console.WriteLine(
    "Wellgood luck with that!");
    break;
    }
    }

  • 相关阅读:
    SharePoint 2013 配置基于表单的身份认证
    SharePoint 2013 场解决方案包含第三方程序集
    SharePoint 2010 站点附加数据升级到SP2013
    SharePoint 2013 在母版页中插入WebPart
    SharePoint 2013 搭建负载均衡(NLB)
    SharePoint 部署解决方案Feature ID冲突
    SharePoint 2013 配置基于AD的Form认证
    SharePoint Server 2016 Update
    SharePoint 2013 为用户组自定义EventReceiver
    SharePoint 2013 JavaScript API 记录
  • 原文地址:https://www.cnblogs.com/waw/p/2156800.html
Copyright © 2011-2022 走看看