一、C#简介

  C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
  C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。

二、创建一个新的C#工程

  开发工具:Visual Studio (VS)

  1、启动 Visual Studio,在菜单栏上选择 File -> New -> Project,从模板中选择 Visual C#,然后选择 Windows,选择 Console Application,为您的项目制定一个名称,然后点击 OK 按钮;
  2、新项目会出现在解决方案资源管理器(Solution Explorer)中,在代码编辑器(Code Editor)中编写代码,点击 Run 按钮或者按下 F5 键来运行程序。会出现一个命令提示符窗口(Command Prompt window),显示 输出结果。

三、C# 代码

  using System;
  namespace HelloWorldApplication
  {
    /* 类名为 HelloWorld */
    class HelloWorld
    {
      /* main函数 */
      static void Main(string[] args)
      {
        /* 我的第一个 C# 程序 */
        Console.WriteLine("Hello World!");
        Console.ReadKey();
      }
    }
  }
  1.using System:using 关键字用于在程序中包含 System 命名空间,一个程序一般有多个using 语句;

  2.namespace声明:一个 namespace 是一系列的类,HelloWorldApplication 命名空间包含了类 HelloWorld;

  3.class 声明:类 HelloWorld 包含了程序使用的数据和方法声明,类一般包含多个方法,方法定义了类的行为,在这里HelloWorld 类只有一个 Main 方法;

  4.Main 方法:是所有 C# 程序的 入口点,Main 方法说明当执行时 类将做什么动作,Main 方法通过语句 Console.WriteLine("Hello World"); 指定了它的行为。

  5.WriteLine 是一个定义在 System 命名空间中的 Console 类的一个方法,该语句会在屏幕上显示消息 “Hello,World!”;

四、C# 基本语法
  1.using 关键字
    在任何 C# 程序中的第一条语句都是:using System
    using 关键字用于在程序中包含命名空间,一个程序可以包含多个 using 语句

  2. class 关键字
    class 关键字用于声明一个类

  3. C# 注释
    多行注释以 /* 开始,并以字符 */ 终止,如下所示:
    /* This program demonstrates
     The basic syntax of C# programming
     Language */
    单行注释是用 '//' 符号表示。例如:
    //end class Rectangle

  4.成员变量: 变量是类的属性或数据成员,用于存储数据;
     成员函数: 函数是一系列执行指定任务的语句,类的成员函数是在类内声明的;
     标识符: 标识符是用来识别类、变量、函数或任何其它用户定义的项目。

  5.C#关键字
    关键字是 C# 编译器预定义的保留字,这些关键字不能用作标识符

五、C# 数据类型

  在 C# 中,变量分为以下几种类型: 值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types)

  1.值类型(Value types)

    值类型(Value types):

bool 布尔值
byte 8 位无符号整数
char 16 位 Unicode 字符 
decimal 128 位精确的十进制值
double 64 位双精度浮点型
float 32 位单精度浮点型
int 32 位有符号整数类型
long 64 位有符号整数类型
sbyte 8 位有符号整数类型
short 16 位有符号整数类型
uint 32 位无符号整数类型
ulong 64 位无符号整数类型
ushort  16 位无符号整数类型

2.引用类型(Reference types)

  引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。

  内置的引用类型有:object、dynamic 和 string

  -> 对象(Object)类型

    对象(Object)类型 是 C# 中所有数据类型的终极基类Object 是 System.Object 类的别名。所以对象(Object)类型可以
被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。

    装箱操作: 当一个值类型转换为对象类型时
    拆箱操作: 当一个对象类型转换为值类型时

    object obj;
    obj = 100; // 这是装箱

  -> 动态(Dynamic)类型
    可以存储任何类型的值在动态数据类型变量中,这些变量的类型检查是在运行时发生的声明动态类型的语法:dynamic <variable_name> = value;

    例如:dynamic d = 20;
    动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的

  ->字符串(string)类型
    字符串(string)类型 允许您给变量分配任何字符串值,字符串(string)类型是 System.String 类的别名。它是从对象(Object)类型派生的,字符串(string)类型的值可以通过两种形式进行分配:引号和 @引号

    例如:
      string str = "baidu.com";
      一个 @引号字符串:@"baidu.com";

      C# string 字符串的前面可以加 @(称作"逐字字符串")将转义字符(\)当作普通字符对待
      比如:
        string str = @"C:\Windows";
        等价于:string str = "C:\\Windows";
  用户自定义引用类型有:class、interface 或 delegate

六、C# 类型转换方法

  C# 提供了下列常用的内置类型转换方法

序号 方法 描述
1 ToChar 把类型转换为单个 Unicode 字符类型
2 ToDateTime 把类型(整数或字符串类型)转换为 日期-时间 结构
3 ToDecimal 把浮点型或整数类型转换为十进制类型
4 ToDouble 把类型转换为双精度浮点型
5 ToInt16/ToInt32/ToInt64 把类型转换为 16/32/64 位整数类型
6 ToString 把类型转换为字符串类型
7 ToType 把类型转换为指定类型
8 ToUInt16 把类型转换为 16 位无符号整数类型

七、下期预告 - https://www.cnblogs.com/liu-jinxin/p/10824638.html

  -> 变量
  -> 常量
  -> 运算符
  -> 判断
  -> 循环

原文链接:https://blog.csdn.net/lairikeqi/article/details/84617737

第一次发表文章,心里情绪万千。。。。多多指教!

c#基础知识梳理(一)的更多相关文章

  1. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  2. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  3. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  4. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  5. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

  6. Anliven - 基础知识梳理汇总 - 软件测试

    基础知识梳理 - 软件测试 - 概念 基础知识梳理 - 软件测试 - 分类 基础知识梳理 - 软件测试 - 流程 基础知识梳理 - 软件测试 - 用例 基础知识梳理 - 软件测试 - 方法 基础知识梳 ...

  7. [C# 基础知识梳理系列]专题六:泛型基础篇——为什么引入泛型

    引言: 前面专题主要介绍了C#1中的2个核心特性——委托和事件,然而在C# 2.0中又引入一个很重要的特性,它就是泛型,大家在平常的操作中肯定会经常碰到并使用它,如果你对于它的一些相关特性还不是很了解 ...

  8. java基础知识梳理

    java基础知识梳理 1 基本数据类型

  9. C#基础知识梳理索引

    C#基础知识梳理索引 一 引子 之前曾写了一篇随笔<.NET平台技术体系梳理+初学者学习路径推荐+我们的愿景与目标> 三个月过去了,目标使更多的编程初学者,轻松高效地掌握C#开发的基础,重 ...

  10. [SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式

    SQL 基础知识梳理(六)-  函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为“参数”,输出值称为“返回值”. 2. ...

随机推荐

  1. Tosca user space 这是自己的空间,可以create module ,test case 等一大堆模块,五脏俱全

  2. flutter -------- 页面跳转和传值

    在安卓原生开发中,页面跳转可以用Intent类来具体实现: Intent intent =new Intent(MainActivity.this,second.class); startActivi ...

  3. SSIM (Structural SIMilarity) 结构相似性

    公式基于样本x和 y 之间的三个比较衡量:亮度 (luminance).对比度 (contrast) 和结构 (structure). 每次计算的时候都从图片上取一个 N*N的窗口,然后不断滑动窗口进 ...

  4. leetcode 50. Pow(x, n) 、372. Super Pow

    50. Pow(x, n) 372. Super Pow https://www.cnblogs.com/grandyang/p/5651982.html https://www.jianshu.co ...

  5. linux服务之dns

    安装dig工具 [root@cu-app-107 ~]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core) [root@cu-ap ...

  6. layui时间控件闪退的问题

    项目上线,发现后台管理系统layui的子页面出现时间控件闪退的问题,根本选取不到时间. 其原因是:如果出现页面找到多个节点,只有第一个节点能正常使用后面的节点都会闪退,可以理解为目前laydate不支 ...

  7. spring boot集成Websocket

    websocket实现后台像前端主动推送消息的模式,可以减去前端的请求获取数据的模式.而后台主动推送消息一般都是要求消息回馈比较及时,同时减少前端ajax轮询请求,减少资源开销. spring boo ...

  8. VS2015 dlib编译 x64 Debug .lib生成

    VS2015 dlib编译 x64 Debug >------ 已启动生成: 项目: ZERO_CHECK, 配置: Debug x64 ------ > Checking Build S ...

  9. Spring Cloud API网关服务 5.2

    为什么需要API网关 通过前面内容的学习,我们已经可以构建一个简单的微服务架构系统.这个系统可以使用Spring Boot实现微服务的开发,使用Spring Cloud Eureka实现注册中心以及服 ...

  10. JSON 多层对象获取键值

    <html> <script> window.onload = function(){ var json = { "options":{ "nam ...