首页 > 编程语言 >C#学习笔记

C#学习笔记

时间:2022-11-21 12:12:58浏览次数:38  
标签:类型转换 变量 C# 笔记 学习 类型 字符串 标识符

目录

  • 类似C/C++,面向对象
  • 类似Java,功能强大,有很多好用的特性

Hello, world!

hello.cs:

using System;
namespace HelloWorldApplication//命名空间声明
{
    class HelloWorld//类
    {
        static void Main(string[] args)//主函数
        {
            /* Print *///注释
            Console.WriteLine("Hello, World!");//打印
            Console.ReadLine();//等待输入提示程序结束
        }
    }
}

与Java不同的是,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();
        }
    }
}

标识符

标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:

  • 标识符必须以字母、下划线或@开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。
  • 标识符必须不包含任何嵌入的空格或符号,比如 ? - + ! # % ^ & * ( ) [] { } . ; : " ' / \。
  • 标识符不能是 C# 关键字。除非它们有一个@前缀。 例如,@if是有效的标识符,但if不是,因为if是关键字。
  • 不能与C#的类库名称相同。

C#关键字

image

数据类型

值类型(Value types)

与C/C++中的数据类型完全相同。

可以用sizeof(value type)获取大小,这也和C/C++中一样。

引用类型(Reference types)

对象(Object)类型

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

当一个值类型转换为对象类型时,则被称为装箱;另一方面,当一个对象类型转换为值类型时,则被称为拆箱

Object obj;
obj = 100;//装箱

动态(Dynamic)类型

您可以存储任何类型的值在动态数据类型变量中。这些变量的类型检查是在运行时发生的。

dynamic <variable_name> = value;

动态类型与对象类型相似,但是对象类型变量的类型检查是在编译时发生的,而动态类型变量的类型检查是在运行时发生的。

字符串(String)类型

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

String str = "kirin-dev";
@"kirin-dev";

C#string字符串的前面可以加@(称作"逐字字符串")将转义字符()当作普通字符对待

@字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内

指针类型(Pointer types)

指针类型变量存储另一种类型的内存地址。C#中的指针与 C/C++中的指针有相同的功能。

type* identifier;

类型转换

  • 隐式类型转换:C#默认的以安全方式进行的转换,不会导致数据丢失。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
  • 显式类型转换:即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。

image

变量、常量、运算符、判断、循环

C#变量声明、常量声明、运算符、判断语句、循环语句、与C/C++完全相同。

封装

标签:类型转换,变量,C#,笔记,学习,类型,字符串,标识符
From: https://www.cnblogs.com/kirin-dev/p/C-Sharp_Learning.html

相关文章

  • Bot in Discord with discord.js (8)
    Chapter9-事件处理Eventhandling这一章只是根据新的discord.jsv14.6.0,对已有文件进行小修小补。如果你是跟着本教程前几章来的,不要跳过本章!根据官方的说法,Node......
  • The SSL connection could not be established, see inner exception.
    C#请求HTTPS地址的故障分析和TLS知识点总结  背景介绍近期收到同事反馈,在C#程序中通过HTTPClient请求一个HTTPS的地址时,在本地开发环境和测试环境均能正常执行,而......
  • java报错:The reference to entity
    java关于报错:Thereferencetoentity"characterEncoding"mustendwiththe';'delimiter.Java解析XML文件错误。错误信息提示代码类似如下:Thereferencetoentity"......
  • ReentrantLock测试
     博客:https://www.jianshu.com/p/7058c21e615epublicstaticvoidmain(String[]args){test3();}publicstaticvoidtest1(){Ru......
  • vue学习
    #1安装vue-cli脚手架:sudonpminstall-gvue-cli#2查看可以使用哪个模板:vuelist#3vueinitwebpack(模板名称)sell(项目名称)#4安装过程:--Projectnamesell......
  • scray中的Request 不执行回调
    在scrapy中,scrapy.Request(url,headers=self.header,callback=self.parse_detail)​​parse_detail​​ 没有被调用,这可能就是被过滤掉了,查看scrapy的输出日志 ​......
  • eclipse设置默认编码格式utf-8
    需要设置的几处地方为:Window->Preferences->General->Workspace面板Textfileencoding选择UTF-8Window->Preferences->General->ContentType->Text->JSP最下面设置......
  • Python字符串的encode与decode研究心得乱码问题解决方法(转)
    ​​Python字符串的encode与decode研究心得乱码问题解决方法(转)​​为什么会报错“UnicodeEncodeError:'ascii'codeccan'tencodecharactersinposition0-1:o......
  • Missing artifact com.sun:tools:jar:1.x.x解决办法
    Missingartifactcom.sun:tools:jar:1.x.x解决办法前一阵子下了最新的JavaEE版本的eclipse,导入maven工程之后,pom文件一直报Missingartifactcom.sun:tools:jar:1.x.x。......
  • eclipse报错:The method convert(String) of type DateConvertor must override a supe
    ​​@Overridemustoverrideasuperclassmethod问题解决​​如果在使用Eclipse开发Java项目时,在使用@Override出现以下错误:Themethod***oftype***mustoverr......