C# 编程(基础)

本文档详细介绍了C#编程的基础,包括C#和.NET的关系、基本语法、数据类型、变量、运算符、语句、方法、封装、面向对象特性如类、继承、多态,以及命名空间、预处理指令、正则表达式、异常处理和文件输入输出。内容全面,适合初学者入门学习。
摘要由CSDN通过智能技术生成

环境 | 程序结构 | 基本语法

一、C# 和 .NET

  • .NET 是微软推出的一个应用软件的开发平台,支持用 C# 语言进行编程

二、基本语法

using System;
namespace RectangleApplication
{
    class Rectangle
    {
        // 成员变量
        double length;
        double width;
        public void Acceptdetails()
        {
            length = 4.5;    
            width = 3.5;
        }
        public double GetArea()
        {
            return length * width;
        }
        public void Display()
        {
            Console.WriteLine("Length: {0}", length);
            Console.WriteLine("Width: {0}", width);
            Console.WriteLine("Area: {0}", GetArea());
        }
    }
    
    class ExecuteRectangle
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.Acceptdetails();
            r.Display();
            Console.ReadLine();
        }
    }
}

1、基本语法总结

  • using 关键字用来包含命名空间可以有多个;
  • 类及其实例化、成员变量、成员函数都和java里的感觉差不多,注释也一样;
  • 标识符的规则基本一样就是多了个 @ 符号,数字依旧是不能作为开头;

2、需要注意的几点

  • C# 是大小写敏感的。
  • 所有的语句和表达式必须以分号(;)结尾。
  • 程序的执行从 Main 方法开始。
  • 与 Java 不同的是,文件名可以不同于类的名称。

数据类型 | 变量 | 运算符

一、数据类型

1、值类型

  • 记住这几个,其他的和java差不多:decimal、sbyte、ushort、uint、ulong(分有符号和无符号的)
  • 可以用 sizeof 方法判断数据类型的大小(获得的是字节数)

2、引用类型

  • 引用类型的概念基本和 java 是一样的,内置的 引用类型有:object、dynamic 和 string
object
  • 是所有数据类型的终极基类,可以赋值为任何的数据类型
  • 也存在拆箱装箱的概念,而且和 java 好像也差不多的概念
dynamic
  • dynamic d = 20; 可以存储任何类型的值在动态数据类型变量中
  • 对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的
string
  • 两种表示方法:string str = @"C:\Windows"; string str = "C:\\Windows";
  • 使用 @ 符号的好处在于转义字符会失去意义变成普通的,还可以随意换行,不过换行符及缩进空格都计算在字符串长度之内

3、指针类型

  • char* cptr;
  • 指针类型变量存储另一种类型的内存地址,C# 中的指针与 C 或 C++ 中的指针有相同的功能

4、类型转换

  • 隐式类型转换 :从小的整数类型转换为大的整数类型,从派生类转换为基类,默认转换是安全的
  • 显式类型转换 :需要强制转换运算符,而且强制转换会造成数据丢失,强转和 java 的语法是一样的
  • 转换方法:toByte、toChar、toDouble等方法也可以完成类型的转换,这些方法都是属于 Convert 类的

二、变量

  • 和 java 一样是强类型,类型决定了变量的内存大小和布局
  • C# 允许定义其他值类型的变量,比如 enum,也允许定义引用类型变量,比如 class

1、变量定义和初始化

  • 和 java 没啥区别嘛
  • 接受来自用户的值:就是命令行 `Console.ReadLine();
  • C# 中的 Lvalues 和 Rvalues:和 c 中的概念差不多(变量是 Lvalues,出现在等号的左右都可以,但是值只能是 Rvalues的)

2、常量

  • 概念和 java 一样,就是运行过程中不能改变的特殊变量;
  • char 用单引号,string 用双引号,这和 java 又是一样的;
  • 定义常量:const int h=1;

三、运算符

1、算术运算符

  • 也有 ++ 和 - - :使用的细节都和 java 是一毛一样的像

2、关系、逻辑、位、赋值运算符:无话可说

3、其他运算符

  • sizeof 和 typeof
  • & 返回变量地址;* 变量的指针;
  • 支持三目运算符
  • is 和 as:is 用于判断对象类型,as 用于强制转换,失败也不抛异常
  • 运算符优先级有万能的括号

语句 | 方法 | 封装

一、语句

1、判断

if–else
  • 和 java 一样
switch
  • 使用和基本的特性和 java 也差不多是一样的
  • 比较的类型可以是整形或枚举,或者可以转换为二者之一的 class

2、循环

  • while/do–while
  • for/foreach
  • break/continue
 int[] fibarray = new int[] { 0, 1, 1, 2, 3, 5, 8, 13 };
 foreach (int element in fibarray)
 {
     System.Console.WriteLine(element);
 }

二、封装

  • 一个访问修饰符定义了一个类成员的范围和可见性:
  • public:所有对象都可以访问;
  • private:对象本身在对象内部可以访问,类成员默认的修饰符;
  • protected:只有该类对象及其子类对象可以访问
  • internal:同一个程序集的对象可以访问;
  • protected internal:访问限于当前程序集或派生自包含类的类型,就是两个修饰符的并集

三、方法

1、方法参数传递

  • 方法的定义和调用和 java 没啥不同,方法参数传递存在一些差异
按值传递
按引用传递
using System;
namespace CalculatorApplication
{
   class NumberManipulator
   {
      public void swap(ref int x, ref int y)
      {
         int temp;

         temp = x; /* 保存 x 的值 */
         x = y;    /* 把 y 赋值给 x */
         y = temp; /* 把 temp 赋值给 y */
       }
   
      static void Main(string[] args)
      {
         NumberManipulator n = new NumberManipulator();
         /* 局部变量定义 */
         int a = 100;
         int b = 200;

         Console.WriteLine("在交换之前,a 的值: {0}", a);
        
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值