c#语言—类与函数

前言

 之前我们谈到了面向对象的基础知识,接下来,小编带大家更深入地了解一下类及其方法的内容,其中会涉及到一些具体的小知识。


类与函数

 一、类的成员

 包含了字段,属性和方法。如图所示





二、构造方法

1.作用:

用来创建对象,并且可以在构造函数中对对象进行初始化。

2.构造函数

(1)构造函数是用来创建对象的特殊方法,方法名和类名一样,没有返回值,连void都不用。
构造函数可以有参数,new对象的时候传递函数参数即可
(2)如果不指定构造函数,则类有一个默认的无参构造函数。如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。
(3)构造函数可以重载,也就是有多个参数不同的构造函数。


函数中的参数out与ref

一、ref的认识

1.ref 关键字使参数按引用传递

(1)当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。

(2)要使用 ref 参数,方法定义和调用方法都必须显式使用 ref 关键字。

(3)例如:

class RefExample
{
    static void Method(ref int i)
    {
        i = 44;
    }
    static void Main()
    {
        int val = 0;//传递到 ref 参数的参数必须最先初始化

        Method(ref val);
        // val is now 44
 }


二、out的理解 

1.out 关键字会导致参数通过引用来传递。

(1)不同之处在于 ref 要求变量必须在传递之前进行初始化。

(2)若要使用 out 参数,方法定义和调用方法都必须显示使用 out 关键字。

2.举例说明

class OutExample
{
    static void Method(out int i)
    {
        i = 44;
    }

    static void Main()
    {
        int value;//不必进行初始化变量
        Method(out value);
      //调用方法以便在方法返回之前赋值。
      // value is now 44 }
   }


 

三、两者的联系和区别 

1.在运行时的处理方式不同,如上所示。

2.在编译时的处理方式是相同的。

(1)如果一个方法采用 ref 参数,而另一个方法采用 out 参数,则无法重载这两个方法。例如,从编译的角度来看,以下代码中的两个方法是完全相同的,因此将不会编译以下代码:

class CS0663_Example //报错的一种情况
{
    // compiler error CS0663: "cannot define overloaded 
    // methods that differ only on ref and out"
    public void SampleMethod(ref int i) {  }
    public void SampleMethod(out int i) {  }
}

(2)如果一个方法采用 ref 或 out 参数,而另一个方法不采用这两个参数,则可以进行重载,如下例所示:

class RefOutOverloadExample
{
    public void SampleMethod(int i) { }
    public void SampleMethod(ref int i) { }
}


字符串函数

一、常用函数


1.字符串替换:

string Replace(string oldValue, string newValue)将字符串中的出现oldValue的地方替换为newValue。

例子:名字替换。

2.取子字符串:

string Substring(int startIndex),取从位置startIndex开始一直到最后的子字符串;
string Substring(int startIndex, int length),取从位置startIndex开始长度为length的子字符串,如果子字符串的长度不足length则报错。


二、返回值为布尔类型

1.bool Contains(string value)判断字符串中是否含有子串value
2.bool StartsWith(string value)判断字符串是否以子串value开始;
3.bool EndsWith (string value)判断字符串是否以子串value结束;
4.int IndexOf(string value):取子串value第一次出现的位置。
5.Int IndexOf(string value,int startIndex)


小结

  关于类似的函数知识,还有很多,需要不断地去了解和实践。


评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值