iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >C#基本语法实例分析
  • 572
分享到

C#基本语法实例分析

2023-06-29 23:06:32 572人浏览 安东尼
摘要

这篇“C#基本语法实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#基本语法实例分析”文章吧。一.基础语法C#区分大

这篇“C#基本语法实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#基本语法实例分析”文章吧。

一.基础语法

C#区分大小写,所以myVar和MyVar是两个不同的变量。
2.每个C#可执行文件(如控制台应用程序,windows应用程序和Windows服务)都必须有一个入口点————Main()(M大写)

  public static void Main()  {  //do something  }

在程序启动时调用这个方法。该方法要么没有返回值(void),要么返回一个整数(int)

二.变量

编译器不允许在表达式中使用未初始化的变量。如果变量是类或结构中的字段,如果没有初始化,创建这些变量时,其默认值就是0。
2.类型推断
类型推断(type inference)使用var关键字。编译器可以根据变量的初始化值“推断”变量的类型。var somenum = 0;即使somenum从来没有声明为int,编译器也可以确定,只要somenum在其作用域内,就是一个int.声明了变量,推断出了类型后,就不能改变变量类型了。变量的类型确定后,就遵循其它变量类型遵循的强类型化规则。
3.变量的作用域
变量的作用域是访问该变量的代码区域。只要变量的作用域是程序的不同部分就不会有问题。
(1).局部变量的作用域冲突

  public static int Main()  {      int j =20;      for(int i=0;i<20;i++)      {      int j = 30;      // do something      }  }

编译时会报错,因为在Main()方法作用域内有两个变量j,编译器无法区分这两个变量。
(2).字段和局部变量的作用域冲突
某些情况下可以区分名称相同,作用域相同的两个标识符。原因是C#在变量之间有一个基本的区分,它把在类级别声明的变量看作字段,而把在方法中声明的变量看作局部变量。

  class Program  {      int j = 20;      static void Main(string[] args)      {        int j = 30;        Console.WriteLine(j);        Console.ReadKey();      }  }

虽然在Main()方法的作用域内声明了两个j,这段代码也会编译。在类级别上定义的j,在该类删除前是不会超出作用域的,在Main()中声明的j隐藏了同名的类级别变量,所以运行代码时会显示30.

三.常量

顾名思义,常量是其值在使用过程中不会发生改变的变量。在声明和初始化变量时,在变量的前面加上关键字const,就可以把该变量指定为一个常量:const int a =100;
常量的特点;

  • *常量必须在声明时初始化。指定了值之后就不能改写了。

  • *常量的值必须能在编译时用于计算。因此不能用于从一个变量中提取的值来初始化常量。如果需要,应使用只读字段(后面介绍)。

  • *常量总是静态的。但注意,不必(实际上不允许)在常量声明中包含static

使用常量的好处:

  • *由于使用易于读取的名称(名称的值易于理解)代替了较难读取的数字或字符串,常量使程序变得更易于阅读。

  • *常量使程序易于修改。当常量的值需要修改时,只需要把新值赋给这个常量,不必查找整个程序去修改。

  • *常量更容易避免程序出现错误。如果在声明常量的位置以外的地方给常量赋值,编译器会报错。

四.CTS类型

C#认可的基本预定义类型并没有内置于C#语言中,而是内置于.net Framework中。
例如,在C#中声明一个int类型的数据时,声明的实际上是.NET结构System.Int32的一个实例。这表示在语法上,可以把所有的基本数据类型看成支持某些方法的类。
把int i 转化为string, string s = i.ToString();
在这种便利的语法背后,类型实际上仍存储为基本类型。基本类型在概念上用.NET 结构表示,所以没有性能损失。
C#有15个预定义类型,string,object是引用类型。

五.枚举

  public enum TimeDay  {      Morning=0,      Afternoon = 1,      Evening=2  }

枚举是用户定义的整数类型。
2.从长远来看,创建枚举可以节省大量时间,减少许多麻烦。使用枚举比使用整数的优势:

  • *枚举可以使代码更易于维护,有助于确保给变量指定合法的,期望的值;

  • *枚举使代码更清晰,用描述性的名称表示整数值,而不是用含义模糊,变化多端的数来表示;

在C#中,枚举的真正强大之处是它们在后台会实例化为派生于基类System.Enum的结构。这表示可以对它们调用方法,执行有用的任务。

TimeDay td =TimeDay.Afternoon;Console.WriteLine((td.ToString());

注意因为.NET Framework的执行方式,在语法上把枚举当成结构不会造成性能损失。实际上,一旦代码编译好,枚举就成为基本类型,与int和float类似。
4.从字符串中获取枚举值

TimeDay td = (TimeDay)Enum.Parse(typeof(TimeDay),"afternoon",true);Console.WriteLine((int)td);

要从字符串中转换,需要使用静态方法Enum.Parse,第一个参数是要使用的枚举类型,第二个是要转换的字符串,第三个是指定在转换时是否忽略大小写。
Enum.Parse方法实际上返回一个对象引用(一个字符串)&mdash;&mdash;&mdash;&mdash;我们需要把这个字符串显示转换为需要的枚举类型(是一个拆箱操作)。

六.名称空间

  • 名称空间提供了一种组织相关类和其它类型的方式。与文件和组件不同,名称空间是一种逻辑组合,而不是物理组合。

  • 不允许声明嵌套在另一个名称空间中的多部分的名称空间。

  • 名称空间与程序集无关。同一个程序集中可以有不同的名称空间,也可以在不同的程序集中定义同一个名称空间中的类型。

  • 名称空间的别名

如果名称空间的名称很长,又要在代码中多次引用,但不希望该名称空间的名称包含在using指令中(例如,避免类名冲突),就可以给
该名称空间指定一个别名:

  using System.Text;  using System.Threading.Tasks;  namespace Wrox.ProC.basic  {    class NameSpaceEx    {    }  }  namespace ConsoleApplication1  {    using Intro = Wrox.ProC.basic;//给Wrox.ProC.basic指定别名Intro    class Program    {      static void Main(string[] args)      {        Intro::NameSpaceEx nex = new Intro.NameSpaceEx();//实例化NameSpaceEx对象,要使用::修饰符      }    }  }

七.Main()方法

C#程序是从Main()方法开始执行的,这个方法必须是类或结构的静态方法,并且其返回类型必须是int或void。

1.多个Main()方法

在编译C#控制台或Windows应用程序时,默认情况下,编译器会在类中查找与上述签名匹配的Main()方法,并使这个类方法称为程序的入口。
如果有多个Main()方法,编译器就会报错。

  namespace Wrox  {    class Client    {      public static int Main()      {        MathEx.Main();        return 0;      }    }    class MathEx    {      static int Add(int x,int y)      {        return x+y;      }      public static int Main()      {        int i = Add(5,10);        return i;      }    }  }

但是可以使用/main选项,后跟Main()方法所属类的全名(包括名称空),明确告诉编译器把哪个方法作为程序的入口:

csc ConsoleApplication1.cs /main:Wrox.MathEx

2.给Main()方法传递参数

在调用程序时,可以让CLR包含一个参数,将命令行参数传递给程序。这个参数是一个字符串数组,传统上称为args(但C#可以接受任何名称)。

  class Program  {    static void Main(string[] args)    {      for (int i = 0; i < args.Length; i++)      {        Console.WriteLine(args[i]);      }    }  }

使用命令行就可以编译这段代码。

  ConsoleApplication1 a b c  a  b  c

八.C#预处理器指令

C#预处理器指令不会转化为可执行代码中的命令,但会影响编译过程的各个方面。例如,使用C#预处理器指令可以禁止编译器编译代码的某一部分。
如果计划发布两个版本的代码,即基本代码和拥有更多功能的企业版本,就可以使用预处理器指令。
C#提供了其它机制来实现c++指令的功能,如定制特性。C#并没有一个像C++那样的独立预处理器,所谓的预处理器指令实际上是由编译器处理的。
尽管这样,C#仍保留了一些预处理器指令名称,因为这些命令会让人觉得就是预处理器。

1.#define和#undef

#define DEBUG

它告诉编译器存在给定名称的符号,类似声明一个变量,但没有真正的值,只是存在而已。这个符号不是实际代码的一部分,而只是在编译器编译代码
时存在。在C#代码中没有任何意义。

#undef DEBUG

删除符号
#define 本身没有什么用,与其它预处理器指令(特别是#if)结合使用时,它的功能就很强大。

2.#if,#elif(=else if),#else和#endif

这些指令告诉编译器是否要编译某个代码块

  #if DEBUG  //do something  #endif

#if,#elif还支持逻辑运算符“!”,"==","!=","||",与或...

3.#warning, #error

当编译器遇到它们时,会分别产生这两个指令后面的文本作为警告或错误。

  #if DEBUG  #error "you didnot define DEBUG"  #endif  #warning "dont forget to remove"

4.#region和#endregion

#region和#endregion用于把一段代码标记为又给定名称的一个块

  #region Member Field  int x;  double d;  #endregion

它们可以被某些编译器识别。

5.#pragma

#pragma指令可以抑制或还原指定的编译警告。

  #pragma warning disable  int i;  #pragma warning restore

以上就是关于“C#基本语法实例分析”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: C#基本语法实例分析

本文链接: https://www.lsjlt.com/news/326729.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#基本语法实例分析
    这篇“C#基本语法实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#基本语法实例分析”文章吧。一.基础语法C#区分大...
    99+
    2023-06-29
  • MSSQL基本语法实例分析
    这篇文章主要讲解了“MSSQL基本语法实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MSSQL基本语法实例分析”吧!刷新本地缓存Ctrl+Shift+R查询select&n...
    99+
    2023-06-29
  • HTML基本语法和语义使用实例分析
    本文小编为大家详细介绍“HTML基本语法和语义使用实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML基本语法和语义使用实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新...
    99+
    2024-04-02
  • MySQL基本语法的示例分析
    这篇文章将为大家详细讲解有关MySQL基本语法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先来看一下MySQL的最基本三大段语句,举个例子:我想将下面inst...
    99+
    2024-04-02
  • css基本语法的示例分析
    这篇文章主要介绍了css基本语法的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一 概述 CSS 指层...
    99+
    2024-04-02
  • JavaScript基础之语法实例分析
    这篇文章主要介绍“JavaScript基础之语法实例分析”,在日常操作中,相信很多人在JavaScript基础之语法实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ja...
    99+
    2024-04-02
  • C语言中switch语句基本用法实例
    目录switch语句:switch语句的基本格式C语言switch语句用法补充:用switch来给成绩等级 总结switch语句: 实际生活中,需要做出很多选择,大家都知道...
    99+
    2024-04-02
  • C语言基础知识点实例分析
    这篇文章主要讲解了“C语言基础知识点实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言基础知识点实例分析”吧!什么是C语言简单来说C语言就是一门计算机语言,广泛应用与底层开发,使用...
    99+
    2023-07-02
  • C#语法文本字面量的示例分析
    这篇文章主要为大家展示了“C#语法文本字面量的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#语法文本字面量的示例分析”这篇文章吧。C#语法文本字面量在日常生活中,文本用来表示除了数字...
    99+
    2023-06-04
  • Javascript基本语法实例用法
    本篇内容介绍了“Javascript基本语法实例用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码&l...
    99+
    2024-04-02
  • C语言排序算法实例分析
    这篇文章主要讲解了“C语言排序算法实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言排序算法实例分析”吧!1、直接插入排序基本思想:当插入第i(i>=1)个元素时,前面的ar...
    99+
    2023-06-29
  • C语言分支语句实例分析
    这篇文章主要介绍了C语言分支语句实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言分支语句实例分析文章都会有所收获,下面我们一起来看看吧。C语言的语句C语句可分为以下五类: 表达式语句 函数调用语句 ...
    99+
    2023-06-30
  • C语言字符串基础使用实例分析
    本篇内容介绍了“C语言字符串基础使用实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、字符串的概念字符串是有序字符的集合字符串是程序...
    99+
    2023-06-30
  • CSS语法实例分析
    本文小编为大家详细介绍“CSS语法实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“CSS语法实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 CSS 规则由两个主...
    99+
    2024-04-02
  • Java语法实例分析
    本篇内容主要讲解“Java语法实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java语法实例分析”吧!一,素数求解的n种境界1.1,暴力循环求解public class&nbs...
    99+
    2023-06-30
  • C语言分支句实例分析
    今天小编给大家分享一下C语言分支句实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。何为语句C语言中由一个分号;隔开的就...
    99+
    2023-06-29
  • JavaScript语法实例分析
    本篇内容主要讲解“JavaScript语法实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript语法实例分析”吧!   &nbs...
    99+
    2024-04-02
  • XML语法实例分析
    本文小编为大家详细介绍“XML语法实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“XML语法实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。XML的语法规则既很简单...
    99+
    2024-04-02
  • jade语法实例分析
    本文小编为大家详细介绍“jade语法实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“jade语法实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 标签 自动闭合...
    99+
    2024-04-02
  • C语言算法举例分析
    这篇文章主要介绍“C语言算法举例分析”,在日常操作中,相信很多人在C语言算法举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言算法举例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!最近,我一...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作