如何理解c#类中的字段、属性、方法以及事件?

如题所述

第1个回答  2022-10-21
如何理解c#类中的字段、属性、方法以及事件?, 如何理解c#类中的(字段,属性,方法,事件) 字段
字段是被视为类的一部分的对象的实例,通常用于保存类数据。例如,日历类可能具有一个包含当前日期的字段。
可以选择将字段声明为 static。这使得调用方在任何时候都能使用字段,即使类没有任何实例。
可以将字段声明为 readonly。只读字段只能在初始化期间或在构造函数中赋值。
static readonly 字段非常类似于常数,只不过 C# 编译器不能在编译时访问静态只读字段的值,而只能在运行时访问。
属性
属性是类中可以像类中的字段一样访问的方法。属性可以为类字段提供保护,以避免字段在对象不知道的情况下被更改。
属性使类能够以一种公开的方法获取和设置值,同时隐藏实现或验证代码。
get 属性访问器用于返回属性值,而 set 访问器用于分配新值。这些访问器可以有不同的访问级别。
value 关键字用于定义由 set 索引器分配的值。
不实现 set 方法的属性是只读的。
对于不需要任何自定义访问器代码的简单属性,可考虑选择使用自动实现的属性。看个示例:public class userInfo
{
字段
private string name; 其它类不能访问
public int age; 其它类可访问,但既可赋值,也可取值。
属性
public string Name 其它类可访问,但只能赋值,不能取值。
{
注释了get就只能给Name赋值,而不能取值。反之依然
get{return name;}
set
{
TODO:可以调用方法等其它操作。 这里就是一个方法,方法名为set,参数为value;
name=value;
}
}
} .方法
方法定义类可以执行的操作。方法可以接受提供输入数据的参数,并且可以通过参数返回输出数据。方法还可以不使用参数而直接返回值。事件
事件向其他对象提供有关发生的事情(如单击按钮或成功完成某个方法)的通知。事件是使用委托定义和触发的。
C#中方法,属性,字段,事件,变量,这个几个概念应该如何理解和区分?
嗯,是有点抽像,我不懂c#,但不仅仅是c#中,别的语言都是一样的
我打个比方吧:以某人做为比方
方法:某人要去上班,是骑车去,还是步行去,还是坐公交,这里面你就选择一样去上班,此乃方法
属性:这个人叫小明,而"小明"就是这个人的属性值,他的名字就是这个人的属性
字段:不清楚字段是c#中的意义,故不作评论
事件:某人去上班,选择了骑车了去,但还是迟到了,这就是一个“迟到”事件
变量:这个人要上去上班,他需要交通工具,但他的交通工作有自行车,电瓶车,摩托车,所以交通工具是变量
不一定准确,但大同小意,楼主再仔细甄别一下吧
如何理解C# 接口中的方法、属性、索引器和事件?
打个比方:
你要吃饭---事件
人----类
你这个人---对象
你的嘴----属性
你吃饭的时候端碗---方法
描述你吃饭是第几次(第一次吃,第二次吃。。。)---索引
描述动物都能吃饭(但是你用嘴还是用 *** 吃饭他不管)---接口
如何理解VB语言中的属性方法和事件
1、VB是面向对象的语言,基于对事件编程。 2、一个对象中可以包含属性、方法,也可以包含事件。
如何理解java中类,变量,方法以及包,接口,常量。
这些东西结合到日程生活中的事物就比较好理解了

类是一个概念的统称,比如动物,无法具体到是狗,猫还是其他的,再比如说人、植物啊

变量 比如一个小孩,名字叫XX,年龄XX,名字和年龄都可以成为一个变量

方法 比如一个小孩吃饭啊,睡觉啊,这些动作行为都可以称为一个方法

包,就类似于我们电脑上创建一个文件夹,文件夹里可以再创建文件夹以及文件等等,文件夹就可以称为一个包

常量,比如居民身份证号,这个居民去办身份证,派出所给这个居民一个身份证号,这个身份真号就不能再变了,固定了,这个身份证号就可以作为一个常量

接口 比如打印机,可以彩打,也可以黑白打,不管彩打还是黑白打都是用一个打印机实现的,黑白磨和彩墨就相当于接口,你让打印机选择了黑白磨就打印出来黑白的,让打印机选择彩墨就打印出来彩墨的

如何理解python类中列表的属性
就比方说 有一个类 叫做 car

这个类的属性 可以有 color size brand price year 等描述性的东西

这个类的方法 可以是 run s forward backward 等执行性的东西
class car: #定义基本属性 color = '' size = 0 brand = '' price = 0 year = 0 #定义构造方法 def __init__(self): self.color = color self.size = size self.brand = brand self.price = price self.year = year def run(self): print("the car is running" ) def s(self): print("the car is s" ) def forward(self): print("the car is forward" ) def backward(self): print("the car is backward" )#类调用benz = car('red',1.8T,'Mercedes',400000,2016) benz.run() benz.s() benz.forward() benz.backward()

flash as中的方法和事件如何理解?
术语对菜鸟无益,来比喻吧
方法和事件是对Object物体来说的,就像人有跑走站卧行等动作,类似于方法;也有生长、社交、学习、婚姻等事务,类似于事件
我不能保证是与方法和事件完全对应的。
但方法是物体的行为或功能方面的能力;事件是物体阶段或标志性的综合情况。
如AS中有鼠标侦听、键盘侦听、屏幕刷新等事件,又有剪辑属性、屏幕属性等功能方法
累死我了。不知道说清没有
如何动态调用DLL中类的方法以及属性
在C#中可以通过Assembly来动态加载DLL,然后由它创建类型,接着通过类型的InvokeMember方法来调用DLL中类的方法以及属性。 为了方便说明一下的方法,先说明一下DLL的代码,大致如下:using System;namespace clsTestDll{ /<summary> / Summary description for TestDll. /</summary> publilass TestDll { privatestring strName; public TestDll() { TODO: Add constructor logic here strName = ""; } publicstring GetValue( int nCount ) { returnstring.Format( "Count is {0}!", nCount ); } publicstaticstring GetNewValue( int nCount ) { returnstring.Format( "New count is {0}!", nCount ); } publicstring Name { get{ return strName;} set{ strName = value;} } }} 大致的步骤如下:首先加载DLL,具体如下: Load assembly from dll file Assembly assembly = Assembly.LoadFrom( "clsTestDll.dll"); 其次,用加载的assembly来定义指定的类型,例如: Create new type Type t = assembly.GetType( "clsTestDll.TestDll"); 然后就可以通过新建的类型来调用类的方法。 如果是类的静态方法,可以直接调用,如: Call static member function by name string strReturn = (string) t.InvokeMember("GetNewValue", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Static | BindingFlags.InvokeMethod, null, null, newobject[]{ 12 } ); 如果是类的非静态方法或属性,则需要通过类型,先生成类的对象,如: Create new object of specific class name Object obj = t.InvokeMember( null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null ); 接着,就可以通过“obj”对象来进行调用了,如: Call member function by name strReturn = (string) t.InvokeMember("GetValue", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod, null, obj, newobject[]{ 12 } ); Set class property t.InvokeMember("Name", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty, null, obj, new Object[] {"Test"} ); Get class property strReturn = (string) t.InvokeMember("Name", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetProperty, null, obj, null);
相似回答