C#类和结构介绍,方法介绍,值传递和引用传递,静态和非静态,字符串方法介绍

一.类和结构

(一)结构和类的区别

1. 结构是值类型,值类型直接存储的数值

2. 类是引用类型,引用类型是存储变量的地址

3. 结构不能初始化

4. 类可以初始化

(二)结构和类的定义

1. 结构的定义

Struct 结构名{语句块}

2. 类的定义

Class 类名{语句块}

二、方法的定义及使用

(一)方法的定义

描述类的行为

(二)使用方法的好处

便于修改

增加可读性

可重用

封装等

(三)定义形式

访问修饰符  返回类型 方法名(参数列表)

{

方法语句块

}

参数的值传递:

eg

static void Main(string[ ] args)

{

    int num1 = 5, num2 = 10;   // 两个数字

    Console.WriteLine("交换前两个数的值分别为:{0}{1}", num1, num2);

    Swap(num1, num2);   // 交换两个数的值

    Console.WriteLine("交换后两个数的值分别为:{0}{1}", num1, num2);

}

// 交换两个数的方法

private static void Swap(int num1, int num2)

{

      int temp;      // 中间变量

      temp = num1;

      num1 = num2;

      num2 = temp;

}

输出结果:

交换前两个数的值分别为:510

交换后两个数的值分别为:510

值传递不能保留保留参数的修改

传递参数:ref

Ref修饰参数:

定义和调用

在参数前使用ref

在调用方法前

作为参数的变量声明并赋值

何时使用

希望保留参数的更改

 


eg

static void Main(string[ ] args)

{

    Console.WriteLine("交换前两个数的值分别为:{0}{1}", num1, num2);

    // 交换两个数的值

    Swap(ref num1, ref num2);

    Console.WriteLine("交换后两个数的值分别为:{0}{1}", num1, num2);

}

// 交换两个数的方法

private static void Swap(ref int num1, ref int num2)

{

      int temp;      // 中间变量

      temp = num1;

      num1 = num2;

      num2 = temp;

}

 

三、C#中常用的字符串处理方法:

1. Equals()

比较两个字符串的值是否相等

Eg

string s = "WanGjun";

            string b = "521";

            Console.WriteLine(s.Equals(b));

2. Join():

连接字符串

Eg

          string[] a = new string[] { "hiuhjk","gygdghjgf","ghjgjvjhh"};

    Console.WriteLine( string.Join("-",a));

3. Split()

分割字符串

Eg:string[] a = new string[] { "hiuhjk","gygdghjgf","ghjgjvjhh"}; 

string[] bb = s.Split('j');

4. Indexof()

查找某个字符在字符串中的位置

string s = "WanGjun";

Console.WriteLine( s.IndexOf('j',2,3));

5. Substring()

从字符串中截取字符串

string s = "WanGjun";

 Console.WriteLine(s.Substring(2,3));

6. ToLower()

将字符串转换成小写形式

string s = "WanGjun";

 Console.WriteLine(s.ToLower());

7. Trim()

去除字符串两边的空格

8.==”和“Equals()

==Equals()一致,对值类型比较的是值相等,对于引用类型比较的是两地址是否相等

Format()

Format(“格式字符串”,变量列表)

Eg

record = string.Format(

"姓名:{0}\n出生年月:{1}\n身高:{2}\n

 血型:{3}\n星座:{4}\n最喜欢的食物:{5}",  

 name, birthday, height, bloodType, planet, favourFood);

Console.WriteLine("\n这是你的个人档案:");

Console.WriteLine(record);

Format()Console.writeline()用法相似

三、类型转换

(一)隐式转换

对于小转大,会自动转换

Egint a=10;

Float b=a;

(二)显式转换

1.强制类型转换

Egdouble a=20.5;

Int b=(int)a;

大转小会导致精度丢失

2.使用Parse()进行转换

字符串和数值型的互相转换

Eg

int a=Int.Parse(Console.WriteLine());

3.使用Convert.ToXxx(Object  value)

任意类型和任意类型之间的转换

String s=”78.9”;

Convert.ToDouble(s);

四、访问修饰符

Public:共有的,所有的类都可以访问

Private:私有的,只有当前类可以访问

Protected:受保护的,当前类和派生类可以访问

Interval:当前程序集可以访问

五、静态与非静态

静态方法只能调用静态方法

解决:

1.static

2.实例化对象进行调用

非静态方法可以调用静态方法和非静态方法

试卷总结:

填空

取出字符串中的子字符串用:Substring()方法,替换用Replace()方法,分割用Split()方法,

查找其中一项的位置用Indexof()方法,查找其中是否包含用Contains()方法

集合类是由命名空间:Using System.Collections;提供的

C#通过装箱和拆箱机制实现值类型和引用类型之间的转换

定义方法使用的是形参,调用方法使用的是实参

声明一个1020列的整形二维数组:int[,]a=new int[10,20];

写出下列程序的输出结果

Int[]age=new int[]{16,18,20,14,22};

Foreach(int i in age)

{

If(i>18)

{Continue;}

Console.writeline(i.Tostring()+”  ”);;

}

输出结果为:16,18,14

Class Person{

Public  int id;

}

Person p1,p2;

Person p1=new Person();

P1.id=10000;

P2=p1;

P2.id=20000;

Console.writeline(p1.id+”  ”+p2.id);

输出结果为:20000  20000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值