在本章节内容,主要关于类的细节处理和结构体一点点介绍。

2.1 类和结构

类和结构体实际上都是创建对象的模板,每个对象都有包含数据,并提供了处理和访问的方法。类和结构体得区别是他们在内存的存储方式上的引用,类是存储在堆上的引用类型,而机构体是存储在堆栈上的值类型。在较小的数据类型使用结构可以提高性能,但在语法上和类很相似。主要区别在于是使用关键字struct代替class来声明结构体。

 代码如下:

结构体
   struct PhoneStruct //结构体
    {
        
string firstName;
        
string lastName;

    }

 2.2 ref参数

ref参数,是指类中一般方法的ref参数。如果一个方法的参数前带有ref关键字,则该方法对变量所作的任何改变 都会影响到原来对象的值。

Ref参数示例
using System;
using System.Collections.Generic;

namespace CSharpDemo
{
    
class Program
    {
        
static void Main(string[] args)
        {
            Console.WriteLine(TimeOfDay.Moring);
            
int i = 20;
            doSomeThing(
ref i);
            Console.WriteLine(i.ToString());
        }

        
public enum TimeOfDay
        {
            Moring
=0,
            AfterNoon
=1,
            Evening
=2
        }
        
static void doSomeThing(ref int i)
        {
            i 
= i + 100;
           
        }


    }

}

 注意事项:在传递给方法前,无论是值传递,还是引用传递,变量都需要初始化。

 2.3 out 关键字

在方法的输入参数前面加了out关键字时,传递给对方的变量可以不初始化。

out关键字
using System;
using System.Collections.Generic;

namespace CSharpDemo
{
    
class Program
    {
        
static void Main(string[] args)
        {
            Console.WriteLine(TimeOfDay.Moring);
            
int i;
            doSomeThing(
out i);
            Console.WriteLine(i.ToString());
        }

        
public enum TimeOfDay
        {
            Moring
=0,
            AfterNoon
=1,
            Evening
=2
        }
        
static void doSomeThing(out int i)
        {
            i 
=  100;
           
        }


    }

}

 out和ref区别:

ref是传递参数的地址,out是返回值,两者有一定的相同之处,不过也有不同点。

使用ref前必须对变量赋值,out不用。

out的函数会清空变量,即使变量已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。

2.4 方法重载

方法重载只需声明同名但参数个数或者类型不同的方法即可

     //方法重载
        public void doSomeThing(int i)
        {
            i 
= 100;

        }
        
//方法重载
        public void doSomeThing(string i)
        {
            i 
= "111";
        }

相关文章:

  • 2021-12-03
  • 2022-03-02
  • 2021-10-08
  • 2021-06-20
  • 2021-06-17
  • 2022-12-23
  • 2022-12-23
  • 2021-07-06
猜你喜欢
  • 2021-06-18
  • 2021-12-09
  • 2022-02-02
  • 2022-12-23
  • 2022-12-23
  • 2021-06-17
  • 2021-06-21
相关资源
相似解决方案