静态方法和实例方法
判断是否静态方法的标识
1) 有static关键字:静态方法
2) 没用static关键字:实例方法
区别:
- 静态方法不对特定实例进行操作,静态方法只能访问类中的静态成员,而不能实例成员。访问静态方法也只能使用类名,而不能创建对象,也不能使用对象名来引用
- 实例方法可以使用类的任何成员。调用实例方法时,必须使用类的实例或对象来引用。实例方法对类的某个给定的实例进行操作,在实例方法类中可以使用this来访问该实例,调用实例方法时,必须先创建一个对象
静态方法只能访问静态方法
实例方法可以访问静态和实例成员
之所以不允许静态方法访问实例成员变量,时因为实例成员变量时属于某个对象的,而静态方法在执行时,并不一定存在对象,同样,因为实例方法可以访问实例成员变量,如果允许静态方法调用实例方法,将间接的允许静态方法使用实例成员变量,这是错误的,基于同样的道理,静态方法也不能使用关键字this
代码实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _8._3静态方法和实例方法
{
class Program
{
int exampleVar = 0; //实例成员
static int staticVar = 0;//静态成员
static void staticMethod() //静态方法
{
//报错不能引用非静态的字段
// exampleVar = 1;
//只能使用静态的字段
staticVar = 1;
}
void exampleMethod() //实例方法
{
//实例中可以调用任何成员,包括静态与实例成员
exampleVar = 1;
staticVar = 1;
}
static void Main(string[] args)
{
//调用静态方法一
staticMethod();
//调用静态方法二
Program.staticMethod();
//调用实例对象必须new出一个新的对象才可以使用
Program p = new Program();
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构