0
点赞
收藏
分享

微信扫一扫

C#基础 类中函数的参数是自己的实例


  • .NET Framework : 4.7.2
  •        IDE : Visual Studio Community 2019
  •         OS : Windows 10 x64
  •     typesetting : Markdown
  •         blog : xinshaopu.blog.csdn.net

基础

code

using System;

namespace ConsoleApp
{
    class MyClass
    {
        public int a = 5;

        // 这个函数很有意思!
        public void Hello(MyClass my)
        {
            my.a = 3;
            a = 4;  // 这行代码,到底改的是哪个a
            Console.WriteLine(a);
        }
    }

    class Program
    {

        static void Main(string[] args)
        {

            var a = new MyClass();
            a.Hello(a);

            var b = new MyClass();
            Console.WriteLine(b.a);

            Console.ReadKey();
        }
    }
}

result

4
5

思考与尝试

code

using System;

namespace ConsoleApp
{
    class MyClass
    {
        public int num = 5;

        public void Hello(MyClass my)
        {
            my.num = 3;

            // 原来以为这句话相当于构造函数 my.num=4
            num = 4;
            Console.WriteLine(num);
        }

    }

    class Program
    {

        static void Main(string[] args)
        {

            var a = new MyClass();
            a.Hello(a);
            Console.WriteLine(a.num);


            var b = new MyClass();
            Console.WriteLine(b.num);

            Console.ReadKey();
        }
    }
}

result

4
4
5

使用ILSpy查看(C#)

C#基础 类中函数的参数是自己的实例_c#

使用ILSpy查看(IL)

C#基础 类中函数的参数是自己的实例_github_02

使用ILSpy查看(IL with C#)

C#基础 类中函数的参数是自己的实例_Core_03

  • 注意看 // my.num=3 和 // num=4下面的代码

resource

  • [文档] docs.microsoft.com/zh-cn/dotnet/csharp
  • [规范] github.com/dotnet/docs/tree/master/docs/standard/design-guidelines
  • [源码] referencesource.microsoft.com
  • [ IDE ] visualstudio.microsoft.com/zh-hans
  • [.NET Core] dotnet.github.io

感恩曾经帮助过 心少朴 的人。
C#优秀,值得学习。.NET Core具有跨平台的能力,值得关注。
Console,WinForm,WPF,ASP.NET,Azure WebJob,WCF,Unity3d,UWP可以适当地了解。
注:此文是自学笔记所生,质量中下等,故要三思而后行。新手到此,不可照搬,应先研究其理象数,待能变通之时,自然跳出深坑。

C#基础 类中函数的参数是自己的实例_microsoft_04


举报

相关推荐

0 条评论