第三讲(对象和类型)_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 第三讲(对象和类型)

第三讲(对象和类型)

 2013/8/31 19:09:21  无极尊  博客园  我要评论(0)
  • 摘要:一、类1.给方法传递参数int通过值传递给方法,对应方法对该int的值所做的任何改变都没有改变原int对象的值。但如果把数组或引用类型传递给方法,对应的方法就会使用该引用来改变这个数组中的值,而新值会反射在原始数组对象上。usingSystem;namespaceWrox{classParameterTest{staticvoidSomeFunction(int[]ints,inti){ints[0]=100;i=100;}publicstaticintMain(){inti=0
  • 标签:
一、类
    1.给方法传递参数
        int通过值传递给方法,对应方法对该int的值所做的任何改变都没有改变原int对象的值。但如果把数组或引用类型传递给方法,对应的方法就会使用该引用来改变这个数组中的值,而新值会反射在原始数组对象上。
        using System;
        namespace Wrox
        {
           class ParameterTest
           {
              static void SomeFunction(int[] ints, int i)
              {
                 ints[0] = 100;
                 i = 100;
              }
           
              public static int Main()
              {
                 int i = 0;
                 int[] ints = { 0, 1, 2, 4, 8 };
                 // Display the original values
                 Console.WriteLine("i = " + i);
                 Console.WriteLine("ints[0] = " + ints[0]);
                 Console.WriteLine("Calling SomeFunction...");

                 // After this method returns, ints will be changed,
                 // but i will not
                 SomeFunction(ints, i);
                 Console.WriteLine("i = " + i);
                 Console.WriteLine("ints[0] = " + ints[0]);
                 return 0;
              }
           }
        }
        结果显示:
            i = 0
            ints[0] = 0
            Calling SomeFunction...
            i = 0
            ints[0] = 100
    2.ref参数和out参数
        ref必须在方法外面赋值,out必须在方法里面赋值,方法外面可以不赋值。
二、结构
    1.结构与类的区别。    
    1).结构不支持继承。
    2).结构是值类型3).结构可以初始化如下:
        Dimensions point;
        point.Length=3;
        point.Width=6;
        在结构上调用new运算符,或者给所有的字段分别赋值,结构就完全初始化了。当然结构如果定义为类的成员时,在初始化类时,该结构会自动初始化。
    4).为结构定义构造函数的方式与为类定义构造函数的方式相同,但不允许定义无参数的构造函数。
        下面的结构会编译错误struct Dimentsions
            {
                public double Length=1;
                public double Width=2;
            }
三、部分类
    1.partial关键字允许把类、结构或借口放在多个文件中。partial关键字的用法是:把partial放在class、struct或interface关键字的前面。
        例:
            //bigClassPart1.cs
            partial class TheBigClass
            {
                public void MethodOne()
                {
                
                }
            }
            //BigClassPart2.csf
            partial class TheBigClass
            {
                public void MethodTwo()
                {
                
                }
            }
四、扩展方法        
    1.程序集最初的源代码无法修改就需要用到扩展方法。扩展方法是静态方法,他是类的一部分。
        例如:
            namespace Wrox
            {
                public static class MoneyExtension
                {
                    public static void AddToAmount(this Money money,decimal AmountToAdd)
                    {
                        money.Amount+=amountToAdd;
                    }
                }
            }
    对于扩展方法,第一个参数就是要扩展的类型,他放在this关键字的后面。这个方法是Money类型的一部分。在扩展方法中可以访问所扩展类型 的所有公有的方法和属性。
    在主程序中,AddToAmount()方法看起来像是另一个方法。他没有第一个参数,也不能对它进行任何处理。
    cash1.AddToAmount(10M);
    扩展方法虽是静态的,但也要用标准的实例方法调用。
    如果扩展方法与类中的某个方法同名,就从来不会调用扩展方法。
        
        

 

  • 相关文章
发表评论
用户名: 匿名