首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

c#从静态函数中打印类名

在C#中,可以使用nameof关键字来获取类名。以下是一个示例:

代码语言:csharp
复制
public class MyClass
{
    public static void PrintClassName()
    {
        string className = nameof(MyClass);
        Console.WriteLine($"The class name is: {className}");
    }
}

MyClass.PrintClassName(); // 输出 "The class name is: MyClass"

在这个示例中,我们使用nameof关键字获取MyClass的类名,并将其打印到控制台上。这种方法可以在静态方法中获取类名,而无需实例化类。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

解析C#的构造函数

《解析C#的构造函数》 一.  C#的构造函数概述: C#包含数据成员和函数成员。函数成员提供了操作数据的某些功能,包括方法、属性、构造器和终结器、运算符和索引器。...为了使代码“可验证”,的实例构造器在访问集成的任何字段之前,必须先调用基的构造器。如果派生的构造器没有显示调用一个基构造器,C#编译器会自动生成对默认的基构造器的调用。 2.   ...3.构造函数使用范围:     (1).无参数的实例构造函数静态构造函数可以在同一同时定义,有参的实例构造函数静态构造函数也可以在同一同时定义。...C#构造器的使用情形: 1.静态构造函数的使用:      中有一些静态字段或属性,需要在第一次使用之前,外部源初始化这些静态字段和属性。...2.构造函数的调用: 在C#,构造器可以调用其他构造器。C#构造函数初始化器可以包含对同一的另一个构造函数的调用,也可以包含对直接基的构造函数的调用。初始化器不能有多个调用。

3.1K50

C#后台代码调转到窗口设计器,窗口ID,句柄,区别

但是在当前窗口后台代码选中其它窗口查看其它窗口设计时,使用shift+F7还是跳转到到当前窗口,所以我们需要先按F12转到定义,再按shift+F7转到窗口设计。...窗口ID是窗口在应用程序的唯一标识,通过窗口ID可以获取窗口句柄。 同一个命名空间下窗口ID是唯一的,如果引用别的命名空间窗口,格式为:命名空间.窗口ID。...窗口设计(text属性): 前台显示名字,没有唯一性。...窗口文件名字(解决方案下窗口目录): 该名是该窗口存在项目文件夹的名字,也具唯一性,它包含了许多子定义,但它和普通的自定义不一样,引用时是命名空间.窗口ID,而不是命名空间.窗口

66341

零学习python 】45.Python方法和静态方法

方法、静态方法 方法 方法是以对象作为第一个参数的方法。需要使用装饰器@classmethod来标识其为方法。对于方法,第一个参数必须是对象,一般以cls作为第一个参数。...__type 使用场景: 当方法需要使用对象(如访问私有类属性等)时,定义方法。 方法一般和类属性配合使用。...静态方法 静态方法通过装饰器@staticmethod来修饰,静态方法既不需要传递对象也不需要传递实例对象(形参没有self/cls)。静态方法也可以通过实例对象和对象去访问。...使用场景 当方法既不需要使用实例对象(如实例对象,实例属性),也不需要使用对象(如类属性、方法、创建实例等)时,定义静态方法。 取消不需要的参数传递,有利于减少不必要的内存占用和性能消耗。...注意点: 当定义了同名的方法时,调用方法会执行最后定义的方法。

9710

【C++】入门到精通第三弹——友元函数静态成员

静态成员 成员一般都需要通过对象来访问,不可以通过直接访问,但是当我们将成员定义为静态成员,则允许使用直接访问。 静态成员是在成员前定义static关键字。...静态成员函数只能访问静态成员,而不能访问普通的数据成员。 而且静态成员函数不能定义为const成员函数,如果函数的实现代码位于体之外,则在函数的实现部分不能再标识static关键字。...Clibrary的友元,所以这个成员函数就不能访问去访问Clibrary的私有属性。...此外,全局函数也可以作为友元,一样可以访问的私有成员。 最后简单来谈一下 友元函数在访问对象的成员时,不需要通过对象名。...友元函数没有this指针,如果不通过对象名就无法找到对象的非static成员,也就无法访问。但是当访问对象的static成员时,就可以不用通过对象名访问。

16710

【Linux 内核】实时调度 ⑦ ( 实时调度核心函数源码分析 | dequeue_task_rt 函数 | 执行队列移除进程 )

文章目录 一、dequeue_task_rt 函数 ( 执行队列移除进程 ) 二、update_curr_rt 函数 ( 更新调度信息 ) 本篇博客 , 开始分析 struct sched_class...\rt.c 源文件定义 , 实时调度 相关的 核心函数 也定义在该源码 ; 一、dequeue_task_rt 函数 ( 执行队列移除进程 ) ---- dequeue_task_rt 函数简介...: dequeue_task_rt 函数用于 更新 " 调度信息 " , 将 " 实时调度实体 " sched_rt_entity " 执行队列 " ( 红黑树 ) 删除 , 然后将 被删除的...(rt_se, flags); 作用是 将 " 实时调度实体 " rt_se , " 执行队列 " ( 红黑树 ) 删除 , 被删除的 " 实时调度实体 " 添加到 " 执行队列 " ( 红黑树...) 末尾 ; dequeue_pushable_task(rq, p); 作用是 将 进程 哈希表 删除 ; dequeue_task_rt 函数源码 : static void dequeue_task_rt

40320

Python3 与 C# 面向对象之~封装

的构造函数,__new__ (后面会说) + __init__ 等价于构造函数 第一个参数和的其他方法一样,都是self(相当于C#里面的this,表示创建的实例本身)调用的时候直接忽略它 class...实例属性 --> 实例对象相互之间不共享 一般我们都是在 __init__定义 类属性(类似于C#里面的静态字段) --> 属于对象,多个实例对象之间共享 注意一下:相同名称的实例属性将屏蔽掉类属性...(尽量别同名) 类属性除了可以通过 .类属性 访问外,还可以直接 实例对象.类属性 (C#抽象静态是不能被实例化的) 来个案例更直观点: class Person(object):    #...静态方法不需要额外定义参数,因此在静态方法引用类属性的话,必须通过 对象来引用(访问) 小明眼花缭乱的对老师说道,老师给我看几个案例吧: class Dog(object):    # 类属性    ...:方法用在模拟C#多个构造函数(Python里面不能有同名函数) or 你需要 对类属性、方法操作之类的 静态方法:一般 都是独立功能,类似于函数,只不过在面向对象里面一般这么用 ---- 1.9

1.6K30

Python3 与 C# 面向对象之~封装

的构造函数,__new__ (后面会说) + __init__ 等价于构造函数 第一个参数和的其他方法一样,都是self(相当于C#里面的this,表示创建的实例本身)调用的时候直接忽略它 class...实例属性 --> 实例对象相互之间不共享 一般我们都是在 __init__定义 类属性(类似于C#里面的静态字段) --> 属于对象,多个实例对象之间共享 注意一下:相同名称的实例属性将屏蔽掉类属性...(尽量别同名) 类属性除了可以通过 .类属性 访问外,还可以直接 实例对象.类属性 (C#抽象静态是不能被实例化的) 来个案例更直观点: class Person(object):...静态方法不需要额外定义参数,因此在静态方法引用类属性的话,必须通过 对象来引用(访问) 小明眼花缭乱的对老师说道,老师给我看几个案例吧: class Dog(object): # 类属性...:方法用在模拟C#多个构造函数(Python里面不能有同名函数) or 你需要 对类属性、方法操作之类的 静态方法:一般 都是独立功能,类似于函数,只不过在面向对象里面一般这么用 ---- 1.9

2.1K30

C# 基础知识系列- 13 常见库介绍(一)

System 命名空间 System空间,是C#的基础命名空间,里面定义了常用值和数据类型以及各种类型的基,当然也包括了很多C#程序运行中用到,具体可以访问微软的官方API说明。...可知这是一个静态,需要明确一个概念: 在C#甚至大多数编程语言(支持静态静态不可被继承,而且静态的方法都是工具方法; 静态没有构造方法,也不能构造对象; 静态里的方法都是静态方法 访问一个静态方法需要通过...其中第一写法,T 代表C#的基础数据类型的10种,再加一个Object。...C# 关于控制台的输出还有一个方法:WriteLine,名字来看是写一行的意思,实际表现也是如此,该方法每次输出都会产生新的一行内容,而Write只会在上一次输出的结尾继续输出。...当然,Console并不是只有这些内容,只是这些是我们最常接触的方法。 1.2 Math C#的数学工具,为三角函数、对数函数和其他通用数学函数提供常数和静态方法。

1.3K30

.NET面试题系列 - C# 基础知识(1)

并且如果类型有静态成员,则初始化它们,如果类型有静态构造函数,调用静态构造函数,初始化或者修改(因为静态构造函数在初始化静态成员之后进行,所以可能会造成修改)静态成员的值。...如果类型对象已经存在,则不会再次调用静态构造函数。 调用类型的实例初始化器,初始化类型的非静态成员。 例如下面的代码C#首先将a初始化为5,然后再修改成10。...因为接口是一种特殊的抽象,所以接口是引用类型。因为委托是密封,所以委托是引用类型。 栈中会有一个变量和变量类型,指向堆的对象实例的地址。值类型仅有栈的变量和类型,不包括指向实例的指针。...这两者均位于基础库mscorlib。 1.6.2 实例构造函数(类型) 类型的实例构造函数不能被继承。它负责将类型的实例字段初始化。对于静态字段,由静态构造函数负责。...在程序,用户无法控制何时执行静态构造函数静态构造函数不应该调用基类型的静态构造函数。这是因为类型不可能有静态字段是基类型分享或继承的。

1.8K20

深入.NET平台和C#编程

(3)C#2.0版本开始,对泛型提供了更完整的支持,泛型是微软重点推出的内容,它可以使我们程序更加安全,代码清晰,易控制。...实例方法 static关键字 不需要static关键字 调用 实例对象调用 可以访问静态成员 可以直接访问静态成员 不可以直接访问实例成员 可以直接访问实例成员 不能直接调用实例方法...可以直接调用实例方法和静态方法 调用前初始化 实例化对象时初始化 d.使用构造函数创建对象 (1)构造函数的使用 (2)this关键字 使用构造方法请注意以下几个问题: 一个的构造函数名通常与名相同...构造函数没有返回值 一般情况下,构造函数总是public类型的 在构造函数不要对的示例做初始化以外的事情,不要尝试显示的调用构造函数,也就是直接去调用。...非静态 用static 不用static修饰 只包含静态成员 可以包含静态成员 不可以包含实例成员 · 可以包含实例成员 使用调用静态成员 使用实例对象调用非静态成员

1.9K10

第2章 C#程序设计基础

(4)C#的变量最多可以由511个字符组成,建议变量不要太长,一般不超过31个字符为宜。 5. 叙述C#声明匿名变量需要注意哪些问题。...⑦ sealed:sealed修饰的是密封,不允许被其他继承。 11. 简述C#static字段的特点与含义。 static修饰的字段称为静态字段,而其他修饰符修饰的字段称之为实例字段。...静态字段在内存是唯一存在的,当第一次被创建对象时,这个字段就会被建立,以后利用该类再创建对象时,将不再重复建立该静态字段。因而静态字段数据,为的所有对象所共享。...静态字段只能通过来访问,而实例字段只能通过对象来访问。 12. 简述C#this关键字的特点与含义。 this关键字仅限于在的方法和构造函数中使用。...叙述C#构造函数的功能与特性。 构造函数是创建的对象时自动执行的一种特殊方法。

1.8K40

C# 多态性

C# 多态性 多态性意味着有多重形式。在面向对象编程范式,多态性往往表现为"一个接口,多个功能"。 多态性可以是静态的或动态的。在静态多态性函数的响应是在编译时发生的。...在动态多态性函数的响应是在运行时发生的。 静态多态性 在编译时,函数和对象的连接机制被称为早期绑定,也被称为静态绑定。C# 提供了两种技术来实现静态多态性。...函数的定义必须彼此不同,可以是参数列表的参数类型不同,也可以是参数个数不同。不能重载只有返回类型不同的函数声明。...下面的实例演示了几个相同的函数 print(),用于打印不同的数据类型: using System; namespace PolymorphismApplication { class Printdata...: 面积: 70 当有一个定义在函数需要在继承实现时,可以使用虚方法。

53940

表达式树练习实践:C#值类型、引用类型、泛型、集合、调用函数

表达式树练习实践:C#值类型、引用类型、泛型、集合、调用函数 目录 表达式树练习实践:C#值类型、引用类型、泛型、集合、调用函数 一,定义变量 二,访问变量/类型的属性字段和方法 1....调用函数 调用静态类型的函数 调用实例的函数 三,实例化引用类型 new 给属性赋值 创建引用类型 示例 四,实例化泛型类型于调用 五,定义集合变量、初始化、添加元素 ?...一,定义变量 C# 表达式树,定义一个变量,使用 ParameterExpression。...调用函数 使用 Expression.Call() 可以调用一个静态类型的函数或者实例的函数。...C# ,集合都实现了 IEnumerable,集合都具有 Add 扥方法或属性。

95720

☀️ 学会编程入门必备 C# 最基础知识介绍(四)——数组、字符串、结构体、枚举、

声明 enum 变量 实例 (Class)❤️ 的定义 成员函数和封装 C# 的构造函数 C# 的析构函数 C# 静态成员 总结???? 前言????...在 C# 的结构与传统的 C 或 C++ 的结构不同。C# 的结构有以下特点: 结构可带有方法、字段、索引、属性、运算符方法和事件。 结构可定义构造函数,但不能定义析构函数。...的构造函数 的 构造函数的一个特殊的成员函数,当创建的新对象时执行。...当我们声明一个成员为静态时,意味着无论有多少个的对象被创建,只会有一个该静态成员的副本。 关键字 static 意味着只有一个该成员的实例。...静态变量用于定义常量,因为它们的值可以通过直接调用而不需要创建的实例来获取。静态变量可在成员函数的定义外部进行初始化。你也可以在的定义内部初始化静态变量。

1.7K20

C# 继承和多态

和派生 一个可以派生自多个或接口,这意味着它可以多个基或接口继承数据和函数。...在面向对象编程范式,多态性往往表现为"一个接口,多个功能"。 多态性可以是静态的或动态的。在静态多态性函数的响应是在编译时发生的。在动态多态性函数的响应是在运行时发生的。...在 C# ,每个类型都是多态的,因为包括用户定义类型在内的所有类型都继承自 Object。 静态多态性 在编译时,函数和对象的连接机制被称为早期绑定,也被称为静态绑定。...C# 提供了两种技术来实现静态多态性。分别为: 函数重载 运算符重载 动态多态性 C# 允许您使用关键字 abstract 创建抽象,用于提供接口的部分类的实现。...当有一个定义在函数需要在继承实现时,可以使用虚方法。 虚方法是使用关键字 virtual 声明的。 虚方法可以在不同的继承中有不同的实现。 对虚方法的调用是在运行时发生的。

63210

C Sharp(六)

C Sharp(六) 發佈於 2018-10-25 这一篇,讲讲 C# 的结构体类型和枚举类型。...结构 ---- 结构与类似,都是用户定义类型,都有数据成员和函数成员,但有两个最大的区别: 是引用类型而结构是值类型 结构是隐式密封的 strcut StructName { MemberDeclarations...需要注意与的赋值的不同。 结构允许有实例构造函数静态构造函数,但不允许有析构函数。 与一样,编译器隐式的为结构提供一个无参构造,这个构造将每个成员设置为该类型的默认值。...与 Swift 类似,C# 的简单预定义类型在实现方式上是使用结构类型。所以可以调用一些方法,如: 所有类型都有的 GetType 方法。...void Main() { TrafficLight yellow = TrafficLight.Yellow; Console.WriteLine(yellow); //Yellow 打印成员

40830

c#知识点1.0数据类型

类型 类型定义了一个包含数据成员,函数成员和嵌套类型。类型支持继承 ? 访问属性.jpg 是有访问属性的,其中public在内外可以访问,具体的应该到哪里,我应该会介绍一下的。...接口类型 一个接口定义了一个协议,一个实现接口的或者结构必须遵守它的协议。 数组类型 数组,是同一型的数据集合,数组元素有序,声明 数据类型 [ ] 数组。...委托数据类型 委托是一种指向一个静态方法或一个对象的对象实列和对象方法的数据结构 结构类型数据直接储层在内存,是指类型。...类型是引用类型 ---- 普及一下c#的输入,输出格式 输入格式: Console.Read(); Console.ReadLine Console中提供Read,ReadLine方法以取得用户键盘输入的字符串...参考文章: c#的数据类型简介 二维数组打印

1.1K70

c#实战教程_ps初学者入门视频

析构函数的名字为~,无返回类型,也无参数。Person的析构函数为~ Person()。C#析构函数不能显示地被调用,它是被垃圾收集器撤销不被使用的对象时自动调用的。...必须采用如下方法引用静态字段:.静态字段名。...不管生成或未生成对象,静态方法都可以被使用,使用格式为:.静态方法名。静态方法只能使用该静态方法所在静态数据成员和静态方法。...这是因为使用静态方法时,该静态方法所在可能还没有对象,即使有对象,由于用.静态方法名方式调用静态方法,静态方法没有this指针来存放对象的地址,无法判定应访问哪个对象的数据成员。....静态方法名 m.NoStaticMethod();//使用实例方法格式为:对象名.实例方法名 } } 1.10.4 方法的重载 在C#语言中,如果在同一个定义的函数名相同,而参数类型或参数个数不同

15.4K10

C#基础知识系列六(静态静态成员)

程序不能指定加载静态的确切时间。 但是,可以保证在程序首次引用该类前加载该类,并初始化该类的字段并调用其静态构造函数。...静态构造函数仅调用一次,在程序驻留的应用程序域的生存期内,静态一直保留在内存。...若要创建仅允许创建一个自身实例的非静态,请参见 C# 的单例模式http://www.cnblogs.com/aehyok/archive/2013/05/08/3066127.html)。...静态成员   非静态可以包含静态的方法、字段、属性或事件。 即使没有创建的实例,也可以调用该类静态成员。 始终通过而不是实例名称访问静态成员。...在C#静态成员是比较敏感的东西,在不是十分确认的情况下不要使用; 3:建议更多地使用一般(非静态)。

80120
领券