如果您对c#–什么时候应该覆盖OnEvent而不是在继承时预订事件感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解c#–什么时候应该覆盖OnEvent而不是在继承时预订事件的各种细节,此外还有关
如果您对c# – 什么时候应该覆盖OnEvent而不是在继承时预订事件感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解c# – 什么时候应该覆盖OnEvent而不是在继承时预订事件的各种细节,此外还有关于android – 什么时候应该使用`@ id`而不是`@id`?、C++ 中什么时候应该使用继承,什么时候应该使用组合?、c#什么时候应该使用列表,什么时候应该使用arraylist?、Java EventQueue.我什么时候应该考虑使用它?的实用技巧。
本文目录一览:- c# – 什么时候应该覆盖OnEvent而不是在继承时预订事件
- android – 什么时候应该使用`@ id`而不是`@id`?
- C++ 中什么时候应该使用继承,什么时候应该使用组合?
- c#什么时候应该使用列表,什么时候应该使用arraylist?
- Java EventQueue.我什么时候应该考虑使用它?
c# – 什么时候应该覆盖OnEvent而不是在继承时预订事件
class Foo : Control { protected override void OnClick(EventArgs e) { // new code here } }
与此相反?
class Foo : Control { public Foo() { this.Click += new EventHandler(Clicked); } private void Clicked(object sender,EventArgs e) { // code } }
解决方法
The protected OnEventName method also allows derived classes to override the event without attaching a delegate to it. A derived class must always call the OnEventName method of the base class to ensure that registered delegates receive the event.
android – 什么时候应该使用`@ id`而不是`@id`?
这是正确的做法吗?我认为它是坏的,因为”是另一个初始化.我当前的假设是你应该在第一次使用ID时使用@id,而不是在初始化ID将要表示的对象时使用@id,有点像C/C++以及它们如何在先前的行中至少需要一个函数原型到使用该函数的实际代码.
我的另一个问题是当你使用Eclipse的基于GUI的UI构建器时,我注意到它们总是使用@id而不是@id.这是否可以接受,因为它对我来说似乎效率低下;好像应用程序将花费更多时间来确定是否已在R.id中声明了ID.
解决方法
如果使用@id,编译器将查找R.id.id.您可以在XML文件中定义自己的ID,如下所述:http://developer.android.com/guide/topics/resources/more-resources.html#Id.您可以在res / values / [your_filename] .xml中创建自己的文件:
<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="id_name" /> </resources>
然后引用@id_name,例如
您还可以使用Android命名空间中定义的Id:@android:id / empty
这在Android文档中得到了很好的解释:http://developer.android.com/guide/topics/ui/declaring-layout.html#id
这里还有一些进一步的讨论:android:id what is the plus sign for
C++ 中什么时候应该使用继承,什么时候应该使用组合?
在
C++ 中继承与组合:何时使用?
在 C++ 中,继承和组合是两种用于对象组织和代码重用的技术。理解何时使用哪种技术对于编写可维护、可扩展的代码至关重要。
继承
立即学习“C++免费学习笔记(深入)”;
继承允许一个类(子类)从另一个类(基类)继承数据和行为。子类可以访问基类中的所有非私有成员变量和函数,并可以重写这些成员以实现不同的行为。
何时使用继承:
-
当子类与基类具有“是-一个”关系时,例如:
- 车辆:汽车、卡车、摩托车
- 动物:猫、狗、鸟
-
当需要强制执行特定接口时,例如:
- 形状:圆形、方形、三角形
优点:
- 提供代码复用性
- 促进多态性(通过虚函数)
- 强制执行接口一致性
组合
组合涉及创建一个类(容器类)并通过指针或引用将另一个类(组件类)作为其数据成员包含在其中。组合允许容器类使用组件类的功能,但两者在内存中是独立的实体。
何时使用组合:
-
当容器类与组件类具有“包含-一个”关系时,例如:
- 汽车:发动机、轮胎、车身
- 电脑:主板、CPU、内存
-
当需要更大的灵活性时,例如:
- 在运行时修改容器类的组件
- 使用不同类型的组件实现同一种接口
优点:
- 提供更大的灵活性
- 允许代码重用
- 促进模块化
实战案例:
考虑一个动物模拟程序,其中需要表示各种动物。我们可以使用继承为所有动物定义一个基类 Animal,包含共同属性(例如名称、类型)。然后,我们可以创建子类 Cat、Dog 和 Bird 来表示特定类型的动物,并为每个子类重写描述独特行为的虚函数。
另一方面,可以考虑一个游戏引擎,其中需要表示角色。我们可以使用组合为每个角色创建一个容器类 Character,包含其他类作为组件:
class Character { public: Sword* sword; // 组件:武器 Shield* shield; // 组件:防御 Health* health; // 组件:生命值 };
通过这种方式,我们可以轻松地创建具有不同武器、防御和健康值的各种角色,而无需创建多个继承类。
总之,在 C++ 中,继承主要用于建立“是-一个”关系并强制执行接口一致性,而组合主要用于建立“包含-一个”关系并提供更大的灵活性。根据应用程序的特定要求,明智地选择这些技术对于编写清晰、可维护的代码至关重要。
以上就是C++ 中什么时候应该使用继承,什么时候应该使用组合?的详细内容,更多请关注php中文网其它相关文章!
c#什么时候应该使用列表,什么时候应该使用arraylist?
如标题所示,什么时候应该使用List
,什么时候应该使用ArrayList
?
谢谢
Java EventQueue.我什么时候应该考虑使用它?
http://download.oracle.com/javase/1.4.2/docs/api/java/awt/EventQueue.html
但我不确定何时应该使用它?如果我的班级有两个或更多活动的听众,我应该使用它吗?
解决方法
我经常使用的两种方法是EventQueue.invokelater和EventQueue.invokeAndWait()(不常用).如果您在EDT(事件调度线程)之外执行某些操作,然后想要对GUI进行一些更改(例如向容器添加组件或从容器中删除组件),请使用其中一个操作,因为此类操作应仅在美国东部时间.
关于c# – 什么时候应该覆盖OnEvent而不是在继承时预订事件的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于android – 什么时候应该使用`@ id`而不是`@id`?、C++ 中什么时候应该使用继承,什么时候应该使用组合?、c#什么时候应该使用列表,什么时候应该使用arraylist?、Java EventQueue.我什么时候应该考虑使用它?的相关知识,请在本站寻找。
本文标签: