c#在定义一个类时,public static class 类名;public class 类名;class 类名,这3个有啥不同吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#在定义一个类时,public static class 类名;public class 类名;class 类名,这3个有啥不同吗?相关的知识,希望对你有一定的参考价值。
public是公共的,static是静态的,class表示这是类。public static class 表示这是一个公共的静态类,直接通过类名调用里面的方法,变量等。不用new的。
public class 需要new才可以用。
class 是表示私有的类,外部不能调用。 参考技术A static 是静态类 静态类不能实例化 直接class 访问级别为internal 访问仅限于当前程序集 public 访问不受限制
在 c# 中声明类时,您可以拥有的最大有效修饰符数是多少?
【中文标题】在 c# 中声明类时,您可以拥有的最大有效修饰符数是多少?【英文标题】:What is max number of valid modifiers you can have while declaring a class in c#? 【发布时间】:2020-03-27 17:20:52 【问题描述】:这个问题更多是出于好奇。
修饰符是指在声明类之前添加的关键字。
例如
//1 2 3
public abstract partial class Foo
这有 3 个修饰符 public
、abstract
和 partial
。
从这个问题的角度来看,零修饰符类似于
class Foo
在声明类名时,您可以在类名之前拥有的最大有效修饰符数是多少?
【问题讨论】:
【参考方案1】:最大数量是...
5!
(如果算上unsafe
,则为 6 个)
根据here,类声明如下所示:
class_declaration
: attributes? class_modifier* 'partial'? 'class' identifier type_parameter_list?
class_base? type_parameter_constraints_clause* class_body ';'?
;
您可能不会将属性视为“修饰符”,但您可能会将partial
关键字视为“类修饰符”,尽管它不是实际的class_modifier
。
class_modifier
的列表是:
class_modifier
: 'new'
| 'public'
| 'protected'
| 'internal'
| 'private'
| 'abstract'
| 'sealed'
| 'static'
| class_modifier_unsafe
;
我们知道最长的访问修饰符是protected internal
,所以我们可以忽略所有的访问修饰符:
class_modifier
: 'new'
| 'abstract'
| 'sealed'
| 'static'
| class_modifier_unsafe
;
你只能选择sealed
、static
和abstract
其中之一,所以我们剩下6个“关键词”:
protected
internal
new
sealed
/static
/abstract
partial
unsafe
请注意,new
和 protected internal
只能用于嵌套类声明。
【讨论】:
不可能,我不敢相信这是5!
,这太过分了! (数学笑话)以上是关于c#在定义一个类时,public static class 类名;public class 类名;class 类名,这3个有啥不同吗?的主要内容,如果未能解决你的问题,请参考以下文章