Tag: 代码重用

你将如何在C#中实现“特质”devise模式?

我知道这个特性在C#中是不存在的,但是PHP最近添加了一个叫做Traits的特性 ,在我开始思考这个特性的时候 ,我觉得起初有点傻。 假设我有一个名为Client的基类。 Client有一个名为Name的单个属性。 现在我正在开发一个将被许多不同客户使用的可重复使用的应用程序。 所有客户都同意,客户应该有一个名字,因此它在基地级。 现在顾客A来了,说他也需要跟踪客户的体重。 顾客B不需要重量,但是他想跟踪身高。 客户C想要跟踪重量和高度。 随着性状,我们可以使重量和高度的特点: class ClientA extends Client use TClientWeight class ClientB extends Client use TClientHeight class ClientC extends Client use TClientWeight, TClientHeight 现在,我可以满足我所有客户的需求,而不会增加任何额外的费用。 如果我的客户回来后说:“哦,我真的很喜欢这个function,我可以吗?”,我只是更新类定义,包括额外的特质。 你将如何在C#中完成这个任务? 接口在这里不起作用,因为我需要属性和任何关联方法的具体定义,我不想为每个类的版本重新实现它们。 (“客户”是指雇用我作为开发人员的字面上的人,而“客户”是指编程类;我的每个客户都有他们想要logging信息的客户)

在XML布局中Android的<merge>标签的目的是什么?

我已经阅读了<merge />标签上的Romain Guy的post ,但我仍然不明白它的用处。 它是对<Frame />标签的一种replace,还是像这样使用: <merge xmlns:android="…."> <LinearLayout …> . . . </LinearLayout> </merge> 然后<include />在另一个文件中的代码?

错误:“INSERT EXEC语句不能嵌套”和“不能在INSERT-EXEC语句中使用ROLLBACK语句”如何解决这个问题?

我有三个存储过程Sp1 , Sp2和Sp3 。 第一个( Sp1 )将执行第二个( Sp2 )并将返回的数据保存到@tempTB1 ,第二个将执行第三个( Sp3 )并将数据保存到@tempTB2 。 如果我执行Sp2 ,它将工作,并将从Sp3返回我所有的数据,但问题出在Sp1 ,当我执行它时,会显示以下错误: INSERT EXEC语句不能嵌套 我试图改变execute Sp2的地方,它显示我另一个错误: 在INSERT-EXEC语句中不能使用ROLLBACK语句。