问题列表 - 第11777页

开关案例编程实践

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)

c c# c++ if-statement switch-statement

2
推荐指数
2
解决办法
1794
查看次数

如何跨函数调用跟踪OpenGL状态?

由于OpenGL是一个状态机,我在程序中经常使用glEnable()和glDisable().我只在开始时选择了几个调用(例如glClearColor),但是大多数其他调用我打开和关闭(如照明,取决于我是渲染模型还是3d文本或gui).

你如何跟踪状态?你是否经常在每个功能的顶部设置/重置这些东西?这不是很多不必要的开销吗?

例如,当我编写一个新函数时,有时候我知道在调用函数时状态会是什么,并且我在函数顶部省略了glEnable或glDisable或其他相关的状态切换调用.其他时候,我只是提前编写函数,并添加了这些东西.所以我的函数最终变得非常凌乱,其中一些修改了OpenGL状态,而其他一些只是做出假设(后来被破坏了,然后我必须回过头来弄清楚为什么某些东西会变黄或为什么另一个东西是颠倒的等等. ).

如何在面向对象的环境中跨函数跟踪OpenGL?


也与此问题有关,是如何知道何时使用push和pop,以及何时只设置值.

例如,假设您有一个程序可以绘制一些3D内容,然后绘制一些2D内容.显然,投影矩阵在每种情况下都是不同的.你也是:

  1. 设置3d投影矩阵,绘制3D,设置2d投影矩阵,绘制2d,循环
  2. 在程序中设置一个三维投影矩阵; 然后绘制3d,推动矩阵,绘制2d,弹出矩阵,循环

为什么?

opengl oop

8
推荐指数
1
解决办法
2060
查看次数

编写由多个测试用例组成的单个单元测试违反了单元测试原则?

我应该这样做

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)

注意:所有测试用例都是密切相关的.它们之间只有布尔差异.

testing unit-testing

3
推荐指数
1
解决办法
332
查看次数

jQuery Bind事件触发事件

我正在调用下面的第一个函数,将第二个函数绑定到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)

jquery events binding

2
推荐指数
2
解决办法
2956
查看次数

投射到可比较的,然后比较

我真的很想尝试仿制药,但到目前为止,他们造成的麻烦超过了任何好处.拜托,请告诉我,我错了.

我理解在使用无泛型框架(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)

java generics

7
推荐指数
1
解决办法
9763
查看次数

类属性的Lambda表达式

有人可以解释为什么以下两个例子中的第一个是有效的而另一个不是吗?更具体地说,在第一个例子中,如何在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中所述.

.net c# generics lambda

7
推荐指数
1
解决办法
3947
查看次数

.NET IL .maxstack指令如何工作?

我想知道.maxstack是如何工作的.我知道它与您声明的类型的实际大小无关,而与它们的数量有关.我的问题是:

  1. 这仅适用于函数,还适用于我们要求的所有函数?
  2. 即使只是为了函数而声明了.maxstack,如果你有分支,你怎么知道maxstack是什么?你去看看所有的"路径"并尽可能返回最大值?
  3. 如果我将它设置为16并且实际上有17个变量会发生什么?
  4. 如果我把它设置为256,会有太大的惩罚吗?

.net c# vb.net reflection intermediate-language

24
推荐指数
2
解决办法
5671
查看次数

从WCF中的CommunicationObjectFaultedException中恢复

我有一个客户端应用程序,每10秒尝试通过WCF Web服务发送一条消息.这个客户端应用程序将在船上的计算机上,我们知道它将具有不稳定的互联网连接.我希望应用程序尝试通过服务发送数据,如果不能,则排队消息,直到它可以通过服务发送它们.

为了测试这个设置,我启动了客户端应用程序和Web服务(都在我的本地机器上),一切正常.我试图通过杀死Web服务并重新启动它来模拟糟糕的Internet连接.一旦我终止服务,我就开始获得CommunicationObjectFaultedExceptions - 这是预期的.但是在我重新启动服务之后,我继续得到这些例外.

我很确定我对Web服务范例有些不了解,但我不知道那是什么.任何人都可以提供有关此设置是否可行的建议,如果可行,如何解决此问题(即重新建立与Web服务的通信渠道)?

谢谢!

克莱 -

wcf exception channel

14
推荐指数
1
解决办法
9604
查看次数

如何在VBA IDE中使用"Locals"窗口

当我在Access 2003中编写VBA时,我保持立即窗口可见,我使用Debug.Print和Stop来解决我的挑战.但我从来不知道如何从"当地人"窗口获得帮助.我理解大部分内容都在那里.但通常看起来我不得不四处寻找我想要的物品,并且在所有折叠结构中找到它可能需要一段时间.

(并且"Locals"不会从内置的VBA帮助文件中提取任何内容.也许我错过了一个文件...)

我打赌我可以开始使用当地人,如果我知道什么是实用的方式.你有解释或轶事可以让我知道吗?

ide ms-access vba

2
推荐指数
1
解决办法
7443
查看次数

rails列由多列组成

我有预算表与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的总和并对其进行一些计算.

sql activerecord ruby-on-rails

12
推荐指数
3
解决办法
3万
查看次数