我可以以某种方式强制派生类始终调用重写的方法基础?
public class BaseClass
{
public virtual void Update()
{
if(condition)
{
throw new Exception("..."); // Prevent derived method to be called
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在派生类中:
public override void Update()
{
base.Update(); // Forced call
// Do any work
}
Run Code Online (Sandbox Code Playgroud)
我搜索过并发现了一个使用非虚拟Update()的建议,还有一个受保护的虚拟UpdateEx().它只是感觉不是很整洁,有没有更好的方法?
我希望你能得到这个问题,我很抱歉任何不好的英语.
我想使用JOOMLA 2.5一次运行许多SQL更新查询.在我的代码下面:
require_once '../includes/framework.php';
$query = "UPDATE #__mytable SET myfield='value' where id=1; UPDATE #__mytable SET
myfield='value' where id=2; UPDATE #__mytable SET myfield='value' where id=3;";
$db = JFactory::getDbo();
$db->setQuery($query);
$db->query();
Run Code Online (Sandbox Code Playgroud)
但它显示了语法错误.我试图直接在MYSQL中测试它的工作原理.
我的版本的Microsoft Visual Studio 2008是从DreamSpark下载的.我的许可是否包含销售任何已创建应用程序的权利?
我发现:"你必须使用它们来追求增加你的教育......"(https://www.dreamspark.com/FAQ/StudentOverview.aspx)
我的主要追求是学习.
编辑:
好像我实际上无法销售应用程序.如何在使用DreamSpark产品创建的开发服务器上销售对"premium"-suff的访问权限呢?
我可以将VS2008项目导入VS2008 Express吗?
谢谢你的回答!
寻找一种方法来做到这一点:
public interface INumber1 {}
public interface INumber2 {}
public class TestObject : INumber1, INumber2 {}
public static class TestClass
{
public static void TestMethod(INumber1&INumber2 testobject)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
调用TestMethod:
TestClass.TestMethod(new TestObject());
Run Code Online (Sandbox Code Playgroud)
问题是我需要一个参数来包含来自INumber1和INumber2的方法.提示?