C#开发 —— 基础知识
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 = ; //声明一个int类型的变量ls
byte shj = ; //声明一个byte类型的变量shj
Console.WriteLine("ls={0}", ls); //输出int类型变量ls
Console.WriteLine("shj={0}", shj); //输出byte类型变量shj
C# 中使用 enum 来声明枚举类型
类型转换
隐式
显式
装箱和拆箱 (装箱 —— 将值类型隐式转换成引用类型,拆箱 —— 允许将引用类型显示转换为值类型)
int i = ; //声明一个int类型变量i,并初始化为2008
object obj = i; //声明一个object类型obj,其初始化值为i
Console.WriteLine("1、i的值为{0},装箱之后的对象为{1}", i, obj);
i = ; //重新将I赋值为927
Console.WriteLine("2、i的值为{0},装箱之后的对象为{1}", i, obj);
Console.ReadLine();
装箱后改变值类型变量的值,并不会影响装箱对象的值
int i = ; //声明一个int类型的变量i,并初始化为112
object 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 = "用一生下载你"; //声明字符串StrA
string StrB = "永不放弃"; //声明字符串StrB
string newstr = String.Format("{0},{1}!!!", StrA, StrB); //格式化字符串
用于日期的格式规范
DateTime dt = DateTime.Now; //获取系统当前日期
string strB = String.Format("{0:D}", dt); //格式化成短日期格式
截取字符串
Substring
分割字符串
Split
string StrA = "用^一生#下载,你"; //声明字符串StrA
char[] separator = { '^', '#', ',' }; //声明分割字符的数组
String[] splitstrings = new String[]; //声明一个字符串数组
splitstrings = StrA.Split(separator); //分割字符串
插入和填充字符串
Insert PadLeft PadRight
删除字符串
Remove
复制字符串
Copy CopyTo —— 将字符串的某一部分复制到另一个数组中
string str1 = "用一生下载你"; //声明一个字符串变量str1并初始化
char[] str = new char[]; //声明一个字符数组str
//将字符串str从索引1开始的4个字符串复制到字符数组str中
str1.CopyTo(, str, , );
替换字符串
Replace
可变字符串类 StringBuilder
存在于 System.Text 命名空间中 —— String对象是不可改变的,每次使用String类中的方法时,都要在内存中创建一个新的字符串对象。如需要对字符串执行重复修改 —— StringBuilder
StringBuilder LS = new StringBuilder("用一生下载你", );
LS.Append("VS芸烨湘枫"); //使用Append方法将字符串追加到LS的末尾
Console.WriteLine(LS); //输出LS
//使用AppendFormat方法将字符串按照指定的格式追加到LS的末尾
LS.AppendFormat("{0:C}", Num);
Console.WriteLine(LS); //输出LS
LS.Insert(, "名称:"); //使用Insert方法将“名称:”追加到LS的开头
Console.WriteLine(LS); //输出LS
//使用Remove方法从LS中删除索引15以后的字符串
LS.Remove(, LS.Length - );
Console.WriteLine(LS); //输出LS
//使用Replace方法将“名称:”替换成“一生所爱”
LS.Replace("名称", "一生所爱");
C#开发 —— 基础知识的更多相关文章
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- iOS开发——总结篇&IOS开发基础知识
IOS开发基础知识 1:Objective-C语法之动态类型(isKindOfClass, isMemberOfClass,id) 对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断 ...
- Ext常用开发基础知识
Ext常用开发基础知识 组件定义 //这种方法可以缓存所需要的组件 调用起来比较方便(方法一 ) Ext.define('MySecurity.view.home.HomePanel', { //添加 ...
- IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理
1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以“人”为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是整个IM系统都是以长 ...
- IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列
1.引言 消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一. 消息从发送者到接收者的典型传递方式有两种: 1)一种我 ...
- [No0000138]软件开发基础知识
1. 本文目的 本文目的在于,介绍软件开发的各种基础知识 以实现,看了之后,对于软件开发的很多领域的基础知识有所了解 如此在进行后续的真正的软件开发时,遇到各种细节知识,才会明白由来和背景知识 第 1 ...
- IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token
本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...
- IM开发基础知识补课(七):主流移动端账号登录方式的原理及设计思路
1.引言 在即时通讯网经常能看到各种高大上的高并发.分布式.高性能架构设计方面的文章,平时大家参加的众多开发者大会,主题也都是各种高大上的话题——什么5G啦.AI人工智能啦.什么阿里双11分分钟多少万 ...
- 3D开发基础知识和简单示例
引言 现在物联网概念这么火,如果监控的信息能够实时在手机的客服端中以3D形式展示给我们,那种体验大家可以发挥自己的想象. 那生活中我们还有很多地方用到这些,如上图所示的Kinect 在医疗上的应用,当 ...
- 为企业应用开发提速,写给企业IT部门的低代码开发基础知识
简介:应用程序开发长期以来一直是IT部门和业务部门面临的问题. IT部门总是被新的应用程序需求弄得不堪重负.他们不可能完成业务部门想要完成的每一个项目. 同时,业务部门的用户厌倦了等待,并开始完全绕过 ...
随机推荐
- Service和Servlet的区别
1. 整体概念 Servlet是Java对于Web开发而产生的一项技术,可以说Servlet技术是Java专有的,它是服务器端的技术,客户端通常是浏览器,Servlet提供了请求/响应模式,是JAVA ...
- caffe(11) 图像数据转换成db文件
在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致.而在caffe中经常使用的数据类型是lmdb或leveldb,因此就 ...
- 参考《深度学习之PyTorch实战计算机视觉》PDF
计算机视觉.自然语言处理和语音识别是目前深度学习领域很热门的三大应用方向. 计算机视觉学习,推荐阅读<深度学习之PyTorch实战计算机视觉>.学到人工智能的基础概念及Python 编程技 ...
- linux6 安装oracle11g
转自:http://blog.csdn.net/nhm_lxy/article/details/37813789 安装环境: 虚拟机VMware Workstation 10.0 操作系统: ...
- javascript与DOM节点的结合使用
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象 ...
- JS 中深拷贝的几种实现方法
JS 中深拷贝的几种实现方法1.使用递归的方式实现深拷贝 //使用递归的方式实现数组.对象的深拷贝 function deepClone1(obj) { //判断拷贝的要进行深拷贝的是数组还是对象,是 ...
- HDU 5373(2015多校7)-The shortest problem(模拟%11)
题目地址:pid=5373">HDU 5373 题意:给你一个数n和操作次数t,每次操作将n的各位数之和求出来放在n的末尾形成新的n,问t次操作后得到的n能否够被11整除. 思路:就是 ...
- 大话设计模式C++实现-第15章-抽象工厂模式
一.UML图 二.概念 抽象方法模式(Abstract Factory):提供一个创建一系列相关或互相依赖对象的接口,而无需指定他们详细的类. 三.包括的角色 (1)抽象工厂 (2)详细工厂:包含详细 ...
- linux和Windows双系统让 Windows 把硬件时间当作 UTC
linux和Windows双系统让 Windows 把硬件时间当作 UTC Windows设置如下:开 始->运行->CMD,打开命令行程序(Vista则要以管理员方式打开命令行程序方可有 ...
- sublime 编辑器汉化
一.下载Sublime编辑器 官网下载地址:http://www.sublimetext.com/3 二.下载汉化包 汉化包下载地址:http://files.cnblogs.com/akwwl/su ...