有关类的成员方法有以下相关的知识点
    1.成员方法的基本语法
    2.重载
    3.参数
    4.修饰符
基本语法

修饰符 返回类型 方法名 (参数列表){ 方法体 }

这和函数的声明的格式有些相似,但多了一个修饰符。参数列表是可选的。如果没有返回类型要使用void关键字。

重载
重载是指在类中有两个或以上的成员方法(包括继承过来的)方法名相同,但参数类型或参数个数不同。这种特性是对多态机制的一种实现,实现了编译时的多态性。(还有一种运行时的多态性)
public class 日期
{
    
int 星期;
    
public void 输入(int 星期)
    

        
//不用类型转换就可以直接写进字段
    }

    
public viod 输入(string 星期)
    

        
//进行类型转换后再写入字段
    }

    
public void 输出()
    

        
//输出星期几
    }

    
public static void Main()
    
{
        日期 日期对象 
= new 日期();
        日期对象.输入(
2);
        日期对象.输出();
    }

}
从这个例子可以很容易看出重载这种机制的好出,不管使用什么类型的日期类型程序都能找到相对应的成员方法进行处理,如果是面向过程化语言,就需要加一个switch语句块,对其类型进行判断,但现在这些都交给编译器去完成了。

成员方法的参数 
成员方法的参数有两点要注意,一是参数本身的类型,二是对关键字ref,out,params用法的理解。
    1.在不使用关键字的情况,也称为传值型参数。这种情况是为参数建立以个副本,把副本传到成员方法内部以供使用,需要注意的是值类型的参数和引用型的参数在结果上有些差别。方法里面对对参数的修改不会影响到值类型,但会影响到引用类型,因为引用型参数是把引用本身的副本传到方法里面去了,而不是把引用指向的对象的副本传到方法里面。下面给个例子,一看就能理解,说多了反而不好理解。

class Element
{
    
public int Number = 10;
}


class Test
{
    
static void Change(Element obj,int value)
    
{
        obj.Number 
= 100;
        value 
= 100;
       
    }

    
static void Main()
    
{
        Element j 
=new Element();
        
int n = 10;
        Change(j, n);
        Console.WriteLine(j.Number.ToString());
        Console.WriteLine(n.ToString());
    }

}

结果是 100,10
    2.ref关键字的使用,使用这个关键字后就叫按引用传递,或者传址型参数,使用这个关键字的特点是,不关参数是值类型还是引用类型,方法对参数的修改都会影响到传入参数本身。 需要注意的是不管是在方法的声明还是调用的时候,都要使用关键字ref,而其参数本身要在调用前进行初始化。(个人觉得ref对引用类型的参数意义不大)
    3.out 和ref作用差不多,而其在编译时的处理方式也是一样的。由于这个原因,两个方法只是out 和 ref不同,不能算重载。他们的不同之处在于 ref 要求变量必须在传递之前进行初始化,out不用。out一般用于多个返回值的方法。
    4.params让方发使用变长参数,也就是可以使用任意个数的参数,但必须遵循如下规则,在方法声明中params之后不能跟其它参数,一个方法中只能有一个params,使用params的参数必需是数组类型。

class App
{
    
public static void UseParams(params object[] list)
    
{
        
for (int i = 0; i < list.Length; i++)
        
{
            Console.WriteLine(list[i]);
        }

    }


    
static void Main()
    
{
        
// 一般做法是先构造一个对象数组,然后将此数组作为方法的参数
        object[] arr = new object[3100'a'"keywords" };
        UseParams(arr);

        
// 而使用了params修饰方法参数后,我们可以直接使用一组对象作为参数
        
// 当然这组参数需要符合调用的方法对参数的要求
        UseParams(100'a'"keywords");

        Console.Read();
    }

}

这个例子是Hunts.C我觉得很不错,就借来用用。

修饰符
园子里面写修饰符的很多,想推荐两个,一个是AthrunC#的修饰符,写的很全,还有一个就是这张来自吴有鋆的图

这个东西很多也很杂,而且用的地方也不经相同,我想在后面的学习中逐步介绍,一次说多也记不住。