博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20151026c#2
阅读量:5952 次
发布时间:2019-06-19

本文共 4104 字,大约阅读时间需要 13 分钟。

变量是内存里存储的,运行在cpu里的。

数据类型

值类型:所有的数值类型都是值类型(short int long float double、bool)、枚举、结构

引用类型:对象、字符串、object、数组

区别:

1、值类型

class Program    {        static void Main(string[] args)        {                        int i = 10;            int j = i;            i = 20;            Console.WriteLine(j);        }    }

所有的值类型是储存在栈里的,

值类型的赋值就是值的拷贝

j是没有变化的

2、引用类型

class Program    {        static void Main(string[] args) { string s1 = "aa"; string s2 = s1; s1 = "bb"; Console.WriteLine(s2); } }

引用类的值是储存在堆里面的,栈里面储存的只是它的引用地址。

引用类型的赋值,实际上就是地址的拷贝

s2也是没有变化的。

静态成员

要去调用一个类里面的非静态成员(字段、方法),需要通过类的一个对象调用。

1、当实例化一个类的对象,堆里面会将类里面的所有非静态成员(变量、方法)生成

2、当实例化一个类的对象,首先会在堆里检索该类的对象是否存在,如果在在就会重新拷贝一份。

 

class Person1    {        public string name = "A";        public int age = 20;    }class Program    {        static void Main(string[] args)//程序入口        {            Person1 p1 = new Person1();            Console.WriteLine(string.Format("年龄是{0},姓名是{1}", p1.age, p1.name));//调用对象字段 可以写为静态字段就可以用类调用了。            Console.ReadKey();        }    }

要去调用一个类里的静态成员,只需要通过类去调用。

class Person    {                public static int i = 10;               public static void SayHello()        {            Console.WriteLine("大家好");        }    }    class Program    {        static void Main(string[] args)        {            Console.WriteLine(Person.i);            Person.SayHello();            Console.ReadKey();        }    }

比如:教室类  同学对象

使用某个同学的文具盒就需要通过对象调用

使用教室里公共的工具 拖把、扫帚 就通过为可以调用

 

 未将对象引用到对象的实例

Person p1=null;

引用p1.age p1.name就会出现该错误 需要判断对象是否为空 调试时要查看对象为什么为空

尽可能的避免装箱拆箱 (苹果-苹果  苹果-打包-拆包-苹果)

装箱

把值类型变为引用类型

int i1 = 10;

string s3 = i1.ToString();

拆箱

把引用类型变为值类型

string s4 = "10";

int i2 = Convert.ToInt32(s4);

 

成员变量(全局变量):写在类的里面,方法的外面

局部变量 写在方法的里面

静态变量 static

 

数据类型转换

隐式转换 低精度转高精度型

int i=10;

double d=Convert.ToDouble(i);

显示式转换 高精度型转低精度型(数据会损耗)

double d=10.45;

int i=Conver.ToInt32(d);

运算符

算术运算符:和JS相同 +-*/% ++ --

赋值运算符:= += -= /= *= %= ??

?: js

int i5 = 2 > 3 ? 10 : 20; 2>3吗,如果成立取值10 不成立 取20

??

a=b??c b等于空吗?等于a=c 不等于a=b

string s5 = null;

string s6 = "aaa";
string s7=s5??s6; s5等于空吗?如果不等于取值s5 如果等于取值s6

关系运算符 == !== < > <= >=

逻辑运算符 ||或   &&与  !非(取反)

String类

定义特点

1、字符的数组

把一个字符串转化为字符的数组,并打印

       string s = "dfdfdf";            char[] a = s.ToCharArray();            for (int i = 0; i < a.Length; i++)            {                Console.WriteLine(a[i]);                            }

2.获取字符的长度 str.length;

3、字符串一创建,就不能被修改,重新获取时会在堆里创建一个。

4、s2=s1时,会在堆里拷贝一份。

方法

Compare方法

字符串对应ascii码的顺序

Console.WriteLine(string.Compare("a","bbbbb"));1

Equals 判断是否相等

Console.WriteLine(string.Equals("aa","aa"));

StartWith/EndWith判断一个字符串是否以一个字符串开头 结尾 返回值true/false

string s = "aabbcc";

Console.WriteLine(s.StartsWith("aabb")); 返回true

indexOf/LastindexOf某个指定字符或字符串第一次(最后一次)出现的位置索引

string s = "aabbcc";

Console.WriteLine(s.IndexOf("d")); 返回-1

Console.WriteLine(s.IndexOf("b")); 返回索引2

SubSrting截取字符串

string s = "aabbcc";

Console.WriteLine(s.Substring(3));返回bbc

Console.WriteLine(s.Substring(3,1));返回b

insert 插入字符

string s = "aabbcc";

Console.WriteLine(s.Insert(3,"1"));返回aab1bcc

padleft padright  补齐字符串

 string s = "aabbcc";

 Console.WriteLine(s.PadLeft(10,'@'));返回@@@@aabbcc

Remove方法 删除和剪切字符串

string s = "aabbcc";

Console.WriteLine(s.Remove(1,1));返回abbcc 开始删除的位置,删除的数量

Trim去掉前后的空格

string s = " aabbcc ";

Console.WriteLine(s.Trim());返回aabbcc

去掉数组里的某个字符

Char[] str1 = {' ', '@', '#', '$' }; //必须要加空格

string str0="@#$ "; //必须要加空格
string str2 = " @China$# ";
string str3 = str2.Trim(str1);
string str4 = str2.Trim(str0.ToCharArray());
Console.WriteLine(str3);//返回China
Console.WriteLine(str4);//返回China

 

TrimSart去掉前面的空格 TrimEnd  去掉后面的空格

string str1 = "  dfdf ";

Console.WriteLine(str1.TrimStart());返回 dfdf空格 
Console.WriteLine(str1.TrimEnd());返回 空格dfdf

CopyTo方法 复制字符串

string str1 = "dfdf";

char[] str2 = new char[100];
str1.CopyTo(1, str2, 0, 3);//str1[1]  str2  str2[0] str2[3]
Console.WriteLine(str2);//返回fdf

Replace 替换字符串

Console.WriteLine(("dfdfd").Replace("d","1").Replace("1","2"));返回22d

Format把一个内容传到字符串里

Console.WriteLine(string.Format("'{0}'","abc")); 返回'abc'

 

Console是System下面的一个类

WriteLine是Console类下面的一个方法

当一个类是静态的,所有的内容都是静态的

 

转载于:https://www.cnblogs.com/16lily521/p/4929508.html

你可能感兴趣的文章
自定义异常类一
查看>>
Launch和Shut Off操作详解 - 每天5分钟玩转 OpenStack(30)
查看>>
23.3. 操作系统监控需求
查看>>
美国国家标准技术局发布应用容器安全指南
查看>>
webservice远程调试开启
查看>>
WinForm员工信息表
查看>>
【AIX】AIX 开机自动挂载NFS共享
查看>>
[20150123]热链竞争.txt
查看>>
【翻译+整理】.NET Core的介绍
查看>>
[20150508]列顺序问题.txt
查看>>
Aliware研究开篇
查看>>
红帽Linux 6.5上配置ASM流程
查看>>
DWZ (JUI) 教程 dwz框架 刷新dialog解决方案
查看>>
[20160803]另类行迁移.txt
查看>>
8天学通MongoDB——第五天 主从复制
查看>>
is present but cannot be translated into a null value due to being declared as a primitive type
查看>>
经典算法面试题目-翻转一个C风格的字符串(1.2)
查看>>
Linux与JVM的内存关系分析(转)
查看>>
SpringBoot配置属性之Server
查看>>
SharePoint 2013 入门教程
查看>>