C# 类class 方法示例详解

 更新时间:2026年06月03日 08:58:35   作者:A爱了个I  
这段SEO描述融合了C#类、静态方法和非静态方法三个关键词,概括了文章主要内容,描述了C#类的定义、方法的创建与调用、静态方法与非静态方法的区别等以及对象方法的访问等,适合对C#编程感兴趣的读者

C# 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。本文主要介绍C# 类class 方法。

1、C# 类 方法

方法是在类中声明的,并且它们用于执行某些操作:

例如:

MyClass类中创建一个MyMethod()方法:

using System; 
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{
    public class MyClass 
    {
       static void MyMethod()
       {
         Console.WriteLine("Hello World!");
       }
    }
    class Program
    {
        static void Main(string[] args)
        {
          Console.WriteLine("Hello World!");
        }
    }
}

当调用时,MyMethod()输出信息。 要调用方法,需要写方法名称,后跟两个括号()和一个分号;

例如:

Main方法内部,调用MyMethod()

using System; 
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{
    public class MyClass 
    {
      public static void MyMethod()
      {
         Console.WriteLine("Hello World!");
      }
      public static void Main(string[] args)
      {
         MyMethod();
      }
    }
}// 输出 "Hello World!"

2、静态方法(static)和非静态方法

经常会看到具有staticpublic属性和方法的C# 程序。

在上面的示例中,我们创建了一个static方法,这意味着无需创建该类的对象即可对其进行访问,这与public只能由对象访问的方法不同。 

1) 静态方法不需要类实例化就可以调用,反之非静态方法需要实例化后才能调用; 

2) 静态方法只能访问静态成员和方法,非静态方法都可以访问;

3) 静态方法不能标记为override,导致派生类不能重写,但是可以访问;  

4) 静态成员是在第一次使用时进行初始化。非静态的成员是在创建对象的时候,从内存分配上来说静态是连续的,非静态在内存的存储上是离散的,因此静态方法和非静态方法,在调用速度上,静态方法速度一定会快点,因为非静态方法需要实例化,分配内存,但静态方法不用,但是这种速度上差异可以忽略不计

例如:

下面示例staticpublic方法之间的区别:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{
    public class MyClass
    {
        // Static 方法
        static void MyStaticMethod()
        {
            Console.WriteLine("可以在不创建对象的情况下调用静态方法");
        }
        // Public 方法
        public void MyPublicMethod()
        {
            Console.WriteLine("公共方法必须通过创建对象来调用");
        }
        // Main 方法
        public static void Main(string[] args)
        {
            MyStaticMethod(); // 调用静态方法
                              // myPublicMethod(); 这个编译会报错
            MyClass myObj = new MyClass(); // 创建一个MyClass的对象
            myObj.MyPublicMethod(); // 调用对象的公共方法
        }
    }
}

3、访问对象的方法

例如:

创建一个MyClassmy对象。在my对象上调用say()Eat()方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{
    // 定义MyClass类
    public class MyClass
    {
        // 定义say方法
        public void Say()
        {
            Console.WriteLine("hello,cjavapy!");
        }
        // 定义带参数的eat方法
        public void Eat(string things)
        {
            Console.WriteLine("吃的东西是: " + things);
        }
        // 在main方法, 调用myCar对象方法
        public static void Main(string[] args)
        {
            MyClass my = new MyClass();   // 创建my对象
            my.Say();      // 调用say()方法
            my.Eat("banana");          // 调用eat()方法
        }
    }
}

4、使用多个类

创建一个类的对象并在另一个类中访问它是一个好习惯。在此示例中,我们创建了两个类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication
{
    //MainClass
    public class MainClass
    {
        public static void Main(string[] args)
        {
            MyClass myClass = new MyClass();     // 创建myClass对象
            myClass.Say();                       // 调用Say()方法
            myClass.Eat("香蕉");               // 调用Eat()方法
        }
    }
    //MyClass
    public class MyClass
    {
        // 定义Say方法
        public void Say()
        {
            Console.WriteLine("hello,cjavapy!");
        }
        // 定义带参数的Eat方法
        public void Eat(string things)
        {
            Console.WriteLine("吃的东西是: " + things);
        }
    }
}

到此这篇关于在 C# 类型系统上实现一个 SQL 查询引擎的文章就介绍到这了,更多相关在 C# 类型系统上实现一个 SQL 查询引擎内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

到此这篇关于C# 类class 方法示例详解的文章就介绍到这了,更多相关C# 类class 方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Unity如何获取Texture内存大小方法详解

    Unity如何获取Texture内存大小方法详解

    这篇文章主要为大家介绍了Unity如何获取Texture内存大小方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • 带你一文了解C#中的LINQ

    带你一文了解C#中的LINQ

    c#提供的ling查询极大的遍历了集合的查询过程,且使用简单方便,非常的有用,下面这篇文章主要给大家介绍了关于C#中LINQ的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • C#中利用Lotus notes公共邮箱发送邮件的方法

    C#中利用Lotus notes公共邮箱发送邮件的方法

    这篇文章主要给大家介绍了关于C#中利用Lotus notes公共邮箱发送邮件的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定参考学习价值,需要的朋友们下面来一起看看吧。
    2018-02-02
  • C#自定义字符串压缩和解压缩的方法

    C#自定义字符串压缩和解压缩的方法

    这篇文章主要介绍了C#自定义字符串压缩和解压缩的方法,通过自定义C#字符串操作类实现对字符串的压缩与解压的功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • Unity3D利用DoTween实现卡牌翻转效果

    Unity3D利用DoTween实现卡牌翻转效果

    这篇文章主要为大家详细介绍了Unity3D利用DoTween实现卡牌翻转效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • Winform界面中实现通用工具栏按钮的事件处理方法

    Winform界面中实现通用工具栏按钮的事件处理方法

    下面小编就为大家分享一篇Winform界面中实现通用工具栏按钮的事件处理方法,具有很好的参考价值,希望对大家有所帮助
    2017-11-11
  • C#中Lambda表达式的三种写法

    C#中Lambda表达式的三种写法

    这篇文章介绍了C#中Lambda表达式的三种写法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C# OpenVINO读取百度模型实现印章检测

    C# OpenVINO读取百度模型实现印章检测

    这篇文章主要为大家详细介绍了C# OpenVINO如何通过直接读取百度模型实现印章检测,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • C# Socket通信的实现(同时监听多客户端)

    C# Socket通信的实现(同时监听多客户端)

    这篇文章主要介绍了C# Socket通信的实现(同时监听多客户端),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • C#中foreach实现原理详解

    C#中foreach实现原理详解

    这篇文章主要为大家详细介绍了C#中foreach实现原理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09

最新评论