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部门总是被新的应用程序需求弄得不堪重负.他们不可能完成业务部门想要完成的每一个项目. 同时,业务部门的用户厌倦了等待,并开始完全绕过 ...
随机推荐
- 题解 P3605 【[USACO17JAN]Promotion Counting晋升者计数】
这道题开10倍左右一直MLE+RE,然后尝试着开了20倍就A了...窒息 对于这道题目,我们考虑使用线段树合并来做. 所谓线段树合并,就是把结构相同的线段树上的节点的信息合在一起,合并的方式比较类似左 ...
- eclipse 启动报错has value '1.7', but '1.8' is required
由于安装elasticsearch5.x版本时需要jdk8,所以在本机安装了,不过后来发现启动eclipse时报错: Error: Registry key 'Software\JavaSoft\Ja ...
- 理解ThreadLocal类
1 ThreadLocal是什么 早在JDK 1.2的版本号中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路. 使用这个工具类能够 ...
- HDU 5303 Delicious Apples(贪心 + 背包 2015多校啊)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5303 Problem Description There are n apple trees plan ...
- 简单日志LogHelper
public static class LogHelper { //日志存储路径 private static string LogPath = Path.Combine(AppDomain.Curr ...
- 【基础篇】activity生命周期及数据保存
常见的Android 的界面,均采用Activity+view的形式显示的,一提到Activity,立即就能联想到Activity的生命周期与状态的保存. 下面先从Activity的生命周期开始说起 ...
- MVC:一个View显示多个Model(多个Model你可以使用ViewBag或ViewData , 或者:Model["myInfo"] as)
MVC:一个View显示多个Model 多个Model你可以使用ViewBag或ViewData , 或者:Model["myInfo"] as. 比如: Tuple<str ...
- Ubuntu下通过Firefox Opera Chromium浏览器直接执行java应用程序(打开java jnlp文件)实现在服务器远程虚拟控制台完成远程管理的方法
远程虚拟控制台依赖于java运行环境(jre),在通过浏览器打开链接前,系统必须安装jre环境,远程管理控制台其实就是一个java程序,打开相应的网站会下载一个jnlp(java网络加载协议)的文件, ...
- Python正则表达式初识(五)
正则表达式的内容很丰富,今天小编继续给大家分享Python正则表达式的基础知识.今天要给大家的讲的特殊字符是竖线“|”.竖线“|”实质上是一个或的关系. 1.直接上代码演示,比方说我们需要匹配一个字符 ...
- img下面的留白解决
在做网页的时候经常会出现一个令人困惑的现象.那就是行内元素和块级元素之间会出现“留白”.就是块级元素中明明只有一个行内元素,但行内元素却不会铺满块级元素.像这个例子: “留白”出现的原因 行内元素默认 ...