C# 用于开发可以运行在 .Net 平台上的应用程序,C# 本身只是一种语言,尽管它是用于生成面向 .Net 环境的代码,但它本身不是 .Net 的一部分

Console.WriteLine

命名空间 —— using 指令将命名空间名所标识的命名空间内的类型成员导入到当前编译单元中,从而可以直接使用(不必加上完全限定名)

一种程序组织形式 —— 内部,或外部 (对外公开的组织结构)

可以在项目的命名空间中定义命名空间,但这样不能用using 来引用自定义的命名空间


C# 的所有语句都必须位于类内

Main 方法是程序的入口点,一个C#程序只能有一个main方法,必须是静态

值类型是从 System.ValueType 类继承而来的类型 —— 栈

引用类型 —— 必须在托管堆中为引用类型变量分配内存,由垃圾回收机制来管理控制 —— 堆

每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值   int i=new int();   等价于  Int32 i = new Int32();

C#的所有值类型均隐式派生自 System.ValueType , 而System.ValueType 直接派生自 System.Object  ——  System.ValueType 本身是一个类类型而不是值类型,其关键在于ValueType重写了Equals方法,从而对值类型按照实例的值比较,而不是引用地址来比较

int ls = 927;                                //声明一个int类型的变量lsbyte shj = 255;                            //声明一个byte类型的变量shjConsole.WriteLine("ls={0}", ls);                //输出int类型变量lsConsole.WriteLine("shj={0}", shj);                //输出byte类型变量shj

C# 中使用 enum 来声明枚举类型

类型转换

隐式

显式

装箱和拆箱 (装箱 —— 将值类型隐式转换成引用类型,拆箱 —— 允许将引用类型显示转换为值类型)

int i = 2008;                                //声明一个int类型变量i,并初始化为2008object obj = i;                            //声明一个object类型obj,其初始化值为iConsole.WriteLine("1、i的值为{0},装箱之后的对象为{1}", i, obj);i = 927;                                    //重新将I赋值为927Console.WriteLine("2、i的值为{0},装箱之后的对象为{1}", i, obj);Console.ReadLine();

装箱后改变值类型变量的值,并不会影响装箱对象的值

int i = 112;                                //声明一个int类型的变量i,并初始化为112object obj = i;                                //执行装箱操作Console.WriteLine("装箱操作:值为{0},装箱之后对象为{1}", i, obj);int j = (int)obj;                            //执行拆箱操作Console.WriteLine("拆箱操作:装箱对象为{0},值为{1}", obj, j);Console.ReadLine();

拆箱前后类型要保持一致,否则会出现异常

常量 用const 修饰,且创建常量是必须设置它的初始值


C# 中的特殊运算符

is 检查变量是否为指定的类型,不能重载 is 运算符

typeof 用于获得系统原型对象的类型,也就是 Type 对象。Type类包含关于值类型和引用类型的信息

Type mytype = typeof(int);


Char 在 C#中表示一个 Unicode 字符

InControl

IsDigit

IsLetter

IsLetterOrDigit

IsLower

IsNumber

IsPunctuation  标点符号类别

IsSeparator  分隔符类别

IsUpper

IsWhiteSpace

Parse  将指定字符串的值转换为他的等效Unicode字符

ToLower

ToUpper

字符串 string ,它是String类的别名

String 对象的值是不可改变的,String类所定义的变量是一个引用类型

比较字符串

Compare(bool ignoreCase)

CompareTo —— 以实例对象本身与指定的字符串作比较

Equals —— 两个字符串是否相同 (区分大小写和区域性)

格式化字符串

Format —— 索引占位符(格式项)

string StrA = "用一生下载你";                                    //声明字符串StrAstring StrB = "永不放弃";                                        //声明字符串StrBstring newstr = String.Format("{0},{1}!!!", StrA, StrB);                    //格式化字符串

用于日期的格式规范

DateTime dt = DateTime.Now;                            //获取系统当前日期string strB = String.Format("{0:D}", dt);                    //格式化成短日期格式

截取字符串

Substring

分割字符串

Split

string StrA = "用^一生#下载,你";                            //声明字符串StrAchar[] separator = { '^', '#', ',' };                                //声明分割字符的数组String[] splitstrings = new String[100];                        //声明一个字符串数组splitstrings = StrA.Split(separator);                            //分割字符串

插入和填充字符串

Insert    PadLeft    PadRight

删除字符串

Remove

复制字符串

Copy   CopyTo —— 将字符串的某一部分复制到另一个数组中

string str1 = "用一生下载你";                    //声明一个字符串变量str1并初始化char[] str = new char[100];                        //声明一个字符数组str//将字符串str从索引1开始的4个字符串复制到字符数组str中str1.CopyTo(1, str, 0, 4);

替换字符串

Replace

可变字符串类 StringBuilder

存在于 System.Text 命名空间中 —— String对象是不可改变的,每次使用String类中的方法时,都要在内存中创建一个新的字符串对象。如需要对字符串执行重复修改 —— StringBuilder

StringBuilder LS = new StringBuilder("用一生下载你", 100);LS.Append("VS芸烨湘枫");                    //使用Append方法将字符串追加到LS的末尾Console.WriteLine(LS);                        //输出LS//使用AppendFormat方法将字符串按照指定的格式追加到LS的末尾LS.AppendFormat("{0:C}", Num);Console.WriteLine(LS);                        //输出LSLS.Insert(0, "名称:");                        //使用Insert方法将“名称:”追加到LS的开头Console.WriteLine(LS);                        //输出LS//使用Remove方法从LS中删除索引15以后的字符串LS.Remove(15, LS.Length - 15);Console.WriteLine(LS);                        //输出LS//使用Replace方法将“名称:”替换成“一生所爱”LS.Replace("名称", "一生所爱");

转载于:https://www.cnblogs.com/sprint1989/p/3825573.html

C#开发 —— 基础知识相关推荐

  1. SP 短信开发-基础知识篇

    SP 短信开发-基础知识篇 很土的话题,但是最近帮朋友做这个东西,所以写点东西出来给初学者参考. 一.准备资料 SP开发资料网站上有很多,但是主要是以下几个文档: 1.MISC1.6 SP订购通知接口 ...

  2. iOS开发基础知识--碎片44

    iOS开发基础知识--碎片44  iOS开发基础知识--碎片44 1:App跳转至系统Settings 跳转在IOS8以上跟以下是有区别的,如果是IOS8以上可以如下设置: NSURL *url = ...

  3. IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列

    1.引言 消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一. 消息从发送者到接收者的典型传递方式有两种: 1)一种我 ...

  4. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动端IM)的数据流交换方式都是Http短连接+TCP或UDP长连接来实现.Http短连接主要用于从服务器读取各种持久化信息 ...

  5. IM开发基础知识补课(三):快速理解服务端数据库读写分离原理及实践建议

    1.前言 IM应用从服务端数据的角度来看,它是一种很特殊的应用场景,抛开基础数据.增值业务和附属功能不谈,单从IM聊天工具的立身之本--聊天数据来说,理论上是不需要在服务端存储的(或者说只需要短暂存储 ...

  6. IM开发基础知识补课(一):正确理解前置HTTP SSO单点登陆接口的原理

    1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以"人"为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是 ...

  7. iOS开发基础知识--碎片27

     iOS开发基础知识--碎片27 1:iOS中的round/ceil/floorf extern float ceilf(float); extern double ceil(double); ext ...

  8. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理

    1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以"人"为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是 ...

  9. 【嵌入式Linux】嵌入式Linux驱动开发基础知识之Pinctrl子系统和GPIO子系统的使用

    文章目录 前言 1.Pinctrl子系统 1.1.为什么有Pinctrl子系统 1.2.重要的概念 1.3.代码中怎么引用pinctrl 2.GPIO子系统 2.1.为什么有GPIO子系统 2.2.在 ...

  10. 【嵌入式Linux】嵌入式Linux驱动开发基础知识之按键驱动框架

    文章目录 前言 1.APP怎么读取按键值 1.1.查询方式 1.2.休眠-唤醒方式 1.3.poll方式 1.3.异步通知方式 1.5. 驱动程序提供能力,不提供策略 2.按键驱动程序框架--查询方式 ...

最新文章

  1. ABAPプログラム開発において使用実績のある汎用モジュール一覧
  2. mysql 输出参数赋值_【Mysql 调用存储过程,输出参数的坑】
  3. python计算csv列平均值_利用Python读取CSV文件并计算某一列的均值和方差
  4. Java泛型失效的两种情况
  5. oracle 48小时内_缺血性脑梗死后48小时内使用阿替普酶能够降低脑损伤程度
  6. Go语言获取文件的文件路径、文件名、扩展名
  7. 邮箱回执怎么看_考研复试联系导师邮件怎么写?
  8. 人工智能 信道估计 深度学习_深度学习人体姿态估计算法综述
  9. ffplay.c函数结构简单分析(画图)
  10. python爬小说收费章节_python 多线程爬小说返回章节乱套。求解
  11. 手机投屏到电脑的5种方式,你学到了吗!
  12. Kent Beck简单设计四条规则
  13. 官方rom提取原签名工具_官方和第三方ROM的提取与分解
  14. 这五个数据分析师技巧你一定要知道!
  15. python视频教程大全集下载啦
  16. 刷步数作弊方式解析,保护你微信运动里的那点隐私
  17. el-row文字换行后实现整行自动撑开
  18. 搭建一个自定义的工作流管理平台(一)
  19. KGC的衡量指标(MR、MRR、Hits@n)
  20. 数码相框(三、LCD显示文字)

热门文章

  1. 【音视频安卓开发 (一)】AndroidStudio项目配置权限、jni库路径、ABI、Cmake
  2. 杭州电子科技大学保研计算机,杭州电子科技大学计算机学院计算机科学与技术(一级学科)保研细则...
  3. csr8670 修改key_CSR8670 DFU user guide
  4. python连接不上数据库_pycharm连接mysql数据库连接不上
  5. 冲击波病毒攻击-《截获网站服务器数据》
  6. java 多线程的单例模式,Java多线程中的单例模式两种实现方式
  7. linux 查看主板sn_如何在 Linux 上查找硬件规格
  8. 什么是命名空间 为什么C++需要使用命名空间
  9. 什么是光纤转换器?光纤转换器转换类别介绍
  10. [渝粤教育] 厦门理工学院 机械设计 参考 资料