Intern Day86 - C#static关键字的使用(C++同理)
语法
-
静态方法关键字:
static
-
静态方法如何调用/使用方法:直接
类名.方法名( )
,不需要new一个对象/实例化,通过类名直接调即可
注意
在C++中,this关键字不能用于static方法中。(概念冲突了)
原因:
static:修饰的变量或者方法是属于类,一般通过类名调用。static修饰的方法,在程序编译时就已被加载到内存中,而不是创建实例的时候才产生。static修饰的方法是类方法,类方法是不需要当前类实例化(即new一个对象)就能够访问的方法。
this:是当前类自身的new出来的一个实例。使用this可以调用方法所在对象自身的变量/方法。
在JAVA中,当一个对象创建后,Java虚拟机JVM就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。
简单来说:
static不需要通过new,它直接就可以调用方法;但是this的话是实例化后才能调用。
C#代码示例
using System;
using System.Transactions;
class Test
{
public static void Add(double a,double b)
{
double c = a + b;
Console.WriteLine("x+y=" + c);
}
public void Sub(double a, double b)
{
double c = a - b;
Console.WriteLine("x-y=" + c);
}
}
class Program
{
public static void Main(string[] args) // static void Main(string[] args)
{
Test.Add(2,3); // 调用静态方法
Test x = new Test(); // wrong:Subx = new Sub(); // 调用非静态/一般方法
x.Sub(2, 3);
}
}
输出:
x+y=5
x-y=-1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」