c#中public和static的区别

c#中public和static的区别,第1张

我想你应该说的是结构体与类有什么关系。。类可以描述事物的属性与方法。而结构体只能描述事物的属性比如说。人类。他有名称。有性别。这两个属性吧。用类与结构体都能描述。但是人类还有他的方法。如行动。说话等。。在CLASS中就可以定义方法来描述。。在结构体中就不可以。。

公有成员public member 在程序的任何地方都可以被访问实行信息隐藏的类将其public 成员限制在成员函数上这种函数定义了可以被一般程序用来 *** 纵该类类型对象的 *** 作

私有成员private member 只能被成员函数和类的友元访问实行信息隐藏的类把其数据成员声明为private

被保护成员protected member 对派生类derived class 就像 public 成员一样对其他程序则表现得像private

在类的private:节中声明的成员(无论数据成员或是成员函数)仅仅能被类的成员函数和友元访问。

在类的protected: 节中声明的成员(无论数据成员或是成员函数)仅仅能被类的成员函数,友元以及子类的成员函数和友元访问。

在类的public:节中声明的成员(无论数据成员或是成员函数)能被任何人访问。

public、private或proteced,它们控制变量成员和成员函数在类内和类外如何访问。所谓类内访问是指用类的成员函数进行访问,而类外访问是指用对象或指向对象的指针进行访问。

当一个类的成员定义为public,就能够在类外访问,包括它的派生类。

当一个成员定义为private,它仅能在类内访问,不能被它的派生类访问。

当一个成员定义为proteced,它仅能在类内访问,但是能被它的派生类访问。

当一个成员没有指定访问说明符时,默认为private。

在定义派生类时,访问说明符也能出现在基类的前面,它控制基类的变量成员和成员函数在派生类中的访问方法。当访问说明符为public时,称为公有继承。同样地,当问说明符为protected时,称为保护继承,而当问说明符为private时,称为私有继承。

公有继承时,基类的公有成员,变为派生类的公有成员,基类的保护成员,变为派生类的保护成员。

保护继承时,基类的公有和保护成员,均变为派生类的保护成员。

私有继承时,基类的公有和保护成员,均变为派生类的私有成员。

程序集的强名就是对程序集进行私钥签名,这个私钥签名和程序集名称、程序集版本、区域信息一起构成程序集的强名。

第一个作用是区分发行者

比如

你有一个 adll,version=1001,culture=de-DE

我也有一个 adll,version=1001,culture=de-DE

那这两个程序集放在一起不就冲突了吗

这时候,如果我们分别对各自的程序集加上强名,那么NET就能区分这两个程序集

第二个作用是防止程序集被篡改

不是说你加了强名,别人就不能改你的程序集。而是如果被改了,就过不了调用方的强名验证,调用方就不认这个被非法修改了的程序集。

比如有一个程序集bdll,很多程序和其他程序集都引用了它。现在有些人处于某些目的,把这个bdll篡改了,加上一些后门之类的东西,然后在网络上传播。如果是普通程序集,那他的目的就能够达到。但是如果程序集有强名(并且调用方都是完全限定调用的),那所有用到bdll的代码都不认这个被非法修改过的版本。

其他一些作用是CLR在处理程序集引用时用到的。比如有强名的程序集在解析时会进行版本检查,没有强名的程序集就不进行这个检查。

有强名的程序集可以配置在任何位置,没有强名的程序集只能配置在应用程序的私有目录下

具体的去MSDN上看吧,很多,很杂又很散

共有4种。

private :限制为私有访问。该修饰符只能用于类和结构的成员,如果成员未加访问限制修饰符,则默认为private,对于在命名空间下直接定义的类型(如类,结构,接口,枚举,委托等),不允许使用private。

对于类和结构的成员,如果声明为私有的,那么只有其所在类或结构中的其他成员可以访问。

public:共有访问。该修饰符可用于类和结构的成员,可用于命名空间下直接定义的类型。

对于类和结构成员,如果声明为共有的,那么除自身的成员,外部成员也可以访问。

protected:限制为保护访问。该修饰符只能用于类的成员,而对结构的成员以及在命名空间下直接定义的类型无效。

如果类的成员被声明为保护的,那么只有其所在的类及派生类中的成员可以访问,无法从类的外部进行访问。

internal:限制为内部访问。该修饰符可用户类和结构的成员,也可用于命名空间下直接定义的类型。任何一种类型或成员如果声明为内部的,那么它在本程序集内可以被自由访问,对其他程序集来说是隐藏的。

protected和internal二者可以同时使用,只能用于类的成员,该成员只有其所在类及派生类中的成员可以访问。

以上就是关于c#中public和static的区别全部的内容,包括:c#中public和static的区别、C#中 public private protectde 三种修饰符对类成员的访问的限制强度的顺序是什么、强名称 公钥 私钥什么东西不太理解,用在哪些场合等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9339153.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存