enum SQLErrorCode{
OK = 0,
PARTIAL_OK = 1,
SOMEWHAT_OK = 2,
NOT_OK = 3,
};
Run Code Online (Sandbox Code Playgroud)
代码1:
int error = getErrorCode();
if((error == SQLErrorCode.PARTIAL_OK) ||
(error == SQLErrorCode.SOMEWHAT_OK) ||
(error == SQLErrorCode.NOT_OK) ||
(error < 0))
callFunction1();
else
callFunction2();
Run Code Online (Sandbox Code Playgroud)
代码2:
switch(error){
case SQLErrorCode.PARTIAL_OK:
callFunction1();
break;
case SQLErrorCode.SOMEWHAT_OK:
callFunction1();
break;
case SQLErrorCode.NOT_OK:
callFunction1();
break;
default:
callFunction2();
break;
}
Run Code Online (Sandbox Code Playgroud)
我应该选择哪种方法.就性能而言,应该没有太大差异.如何在switch case中处理错误<0条件.
编辑:乔尔的解决方案:
switch(error) {
case SQLErrorCode.PARTIAL_OK:
case SQLErrorCode.SOMEWHAT_OK:
case SQLErrorCode.NOT_OK:
callFunction1();
break;
case SQLErrorCode.OK:
callFunction2();
break;
default: // error < 0 is handled …Run Code Online (Sandbox Code Playgroud) 由于OpenGL是一个状态机,我在程序中经常使用glEnable()和glDisable().我只在开始时选择了几个调用(例如glClearColor),但是大多数其他调用我打开和关闭(如照明,取决于我是渲染模型还是3d文本或gui).
你如何跟踪状态?你是否经常在每个功能的顶部设置/重置这些东西?这不是很多不必要的开销吗?
例如,当我编写一个新函数时,有时候我知道在调用函数时状态会是什么,并且我在函数顶部省略了glEnable或glDisable或其他相关的状态切换调用.其他时候,我只是提前编写函数,并添加了这些东西.所以我的函数最终变得非常凌乱,其中一些修改了OpenGL状态,而其他一些只是做出假设(后来被破坏了,然后我必须回过头来弄清楚为什么某些东西会变黄或为什么另一个东西是颠倒的等等. ).
如何在面向对象的环境中跨函数跟踪OpenGL?
也与此问题有关,是如何知道何时使用push和pop,以及何时只设置值.
例如,假设您有一个程序可以绘制一些3D内容,然后绘制一些2D内容.显然,投影矩阵在每种情况下都是不同的.你也是:
为什么?
我应该这样做
Test1(){
Assert(TestCase1);
Assert(TestCase1);
Assert(TestCase3);
...
}
Run Code Online (Sandbox Code Playgroud)
要么
Test1(){
Assert(TestCase1);
}
Test2(){
Assert(TestCase2);
}
Test3(){
Assert(TestCase3);
}
...
Run Code Online (Sandbox Code Playgroud)
注意:所有测试用例都是密切相关的.它们之间只有布尔差异.
我正在调用下面的第一个函数,将第二个函数绑定到onClick事件。
奇怪的是,调用第一个函数会导致触发第二个函数。
第一个函数中的LinkName参数是表td元素的名称-可能不相关。
function EnableExpand(LinkName, i) {
$(LinkName).addClass("link-text");
$(LinkName).bind("onclick", ExpandFrame(LinkName, i));
}
function ExpandFrame(lName, i) {
$("#mapFrame" + i).attr({ height: 500, width: 800 });
}
Run Code Online (Sandbox Code Playgroud) 我真的很想尝试仿制药,但到目前为止,他们造成的麻烦超过了任何好处.拜托,请告诉我,我错了.
我理解在使用无泛型框架(Spring,Hibernate)时添加@SuppressWarnings("unchecked")的必要性.仅这一点确实降低了泛型的价值,因为要求将类传递给构造函数以避免擦除的缺陷.然而,真正的刺似乎总是在铸造.我通常尝试一段时间来使语法正确,但然后放弃我对纯度的尝试,添加@SuppressWarnings,继续我的生活.
这是一个例子:我正在反思一个bean来寻找两个实例之间的差异.一些属性实现Comparable,使得(a.equals(b)== false)但是(a.compareTo(b)== 0)(例如BigDecimal,Date).在这些情况下,我希望该属性被认为是相同的.
MyObject original = getOriginal();
MyObject updated = getUpdated();
for (PropertyDescriptor pd : BeanUtils.getPropertyDescriptors(MyObject.class)) {
// Assume I'm putting in the try/catch block
Object pOriginal = pd.getReadMethod().invoke(original, (Object[]) null);
Object pUpdated = pd.getReadMethod().invoke(updated, (Object[]) null);
boolean isPropertySame;
if (Comparable.class.isAssignableFrom(pOriginal.getClass())) {
// Type safety: The method compareTo(Object) belongs to the raw type Comparable. References to generic type Comparable<T> should be parameterized
isPropertySame = Comparable.class.cast(pOriginal).compareTo(Comparable.class.cast(pUpdated)) == 0;
// The method compareTo(capture#19-of ?) in the type Comparable<capture#19-of ?> is …Run Code Online (Sandbox Code Playgroud) 有人可以解释为什么以下两个例子中的第一个是有效的而另一个不是吗?更具体地说,在第一个例子中,如何在T和TProperty之间建立关系?
//Example 1
class SomeClass<T> where T : class
{
void SomeMethod<TProperty>( Expression<Func<T,TProperty>> expression ){ ... }
}
//Example 2
class SomeClass
{
void SomeMethod<T,TProperty>( Expression<Func<T,TProperty>> expression )
where T : class{ ... }
}
Run Code Online (Sandbox Code Playgroud)
鉴于这两个例子,我希望以下实现可以工作,但第二个不会.
//Implementation w/ Example 1
var sc = new SomeClass<MyDateClass>();
sc.SomeMethod( dt => dt.Year );
//Implementation w/ Example 2
var sc = new SomeClass();
sc.SomeMethod<MyDateClass>( dt => dt.Year );
Run Code Online (Sandbox Code Playgroud)
我无法理解的是第一个示例/实现在执行SomeMethod时如何忽略TProperty泛型类型,但第二个示例/实现不能以及如何在T和TProperty之间建立隐式关系示例/实施1.
解决方案 更改示例2中方法的签名如下:
void SomeMethod<T>( Expression<Func<T,Object>> expression ){ ... }
Run Code Online (Sandbox Code Playgroud)
虽然这将允许在表达式中使用任意对象,因此它确实允许属性清晰度,如实现2中所述.
我想知道.maxstack是如何工作的.我知道它与您声明的类型的实际大小无关,而与它们的数量有关.我的问题是:
我有一个客户端应用程序,每10秒尝试通过WCF Web服务发送一条消息.这个客户端应用程序将在船上的计算机上,我们知道它将具有不稳定的互联网连接.我希望应用程序尝试通过服务发送数据,如果不能,则排队消息,直到它可以通过服务发送它们.
为了测试这个设置,我启动了客户端应用程序和Web服务(都在我的本地机器上),一切正常.我试图通过杀死Web服务并重新启动它来模拟糟糕的Internet连接.一旦我终止服务,我就开始获得CommunicationObjectFaultedExceptions - 这是预期的.但是在我重新启动服务之后,我继续得到这些例外.
我很确定我对Web服务范例有些不了解,但我不知道那是什么.任何人都可以提供有关此设置是否可行的建议,如果可行,如何解决此问题(即重新建立与Web服务的通信渠道)?
谢谢!
克莱 -
当我在Access 2003中编写VBA时,我保持立即窗口可见,我使用Debug.Print和Stop来解决我的挑战.但我从来不知道如何从"当地人"窗口获得帮助.我理解大部分内容都在那里.但通常看起来我不得不四处寻找我想要的物品,并且在所有折叠结构中找到它可能需要一段时间.
(并且"Locals"不会从内置的VBA帮助文件中提取任何内容.也许我错过了一个文件...)
我打赌我可以开始使用当地人,如果我知道什么是实用的方式.你有解释或轶事可以让我知道吗?
我有预算表与emptype_id和calendar_id actual_head,estimated_head
当我这样Budgets.sum(:actual_head ,:group=>"emptype_id,calendar_id") 做时,我 没有得到按上述两列分组的结果,但只有emptype_id
但是,当我检查日志时,sql查询是正确的
SELECT sum(`budgets`.actual_head) AS sum_actual_head, emptype_id,calendar_id AS emptype_id_calendar_id FROM `budgets` GROUP BY emptype_id,calendar_id
Run Code Online (Sandbox Code Playgroud)
有103行
我想遍历每个emptype_id和calendar_id以获得actual_head的总和并对其进行一些计算.