问题列表 - 第20745页

切换枚举时在switch语句中使用default

切换枚举时,您的程序是什么?每个枚举都包含在案例中?理想情况下,您希望代码能够成为未来的证明,您是如何做到的?

另外,如果一些白痴向枚举类型转换了一个任意的int呢?是否应该考虑这种可能性?或者我们是否应该假设在代码审查中会发现这样一个令人震惊的错误?

enum Enum
{
    Enum_One,
    Enum_Two
};

Special make_special( Enum e )
{
    switch( e )
    {
        case Enum_One:
            return Special( /*stuff one*/ );

        case Enum_Two:
            return Special( /*stuff two*/ );
    }
}

void do_enum( Enum e )
{
    switch( e )
    {
        case Enum_One:
            do_one();
            break;

        case Enum_Two:
            do_two();
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)
  • 离开默认情况,gcc会警告你(视觉工作室会吗?)
  • 添加一个默认情况assert(false);
  • 添加一个抛出可捕获异常的默认情况
  • 添加一个抛出不可捕获异常的默认情况(可能只是策略从不捕获它或总是重新抛出).
  • 我没有考虑过的更好的东西

我特别感兴趣的是你为什么选择这样做.

c++ enums switch-statement

33
推荐指数
4
解决办法
1万
查看次数

在java中输出cmd命令的问题

我试图读取cmd命令的结果(例如dir).创建过程后,我使用了BufferedReader一个InputStreamReader.出于某种原因,BufferedReader尽管我知道必须要读取一些输出,但它仍然是空的.

这是我正在使用的代码:

String[] str = new String[] {"cmd.exe", "/c", 
            "cd", "c:\\",
            "dir", "/b", "/s"               
    };
    Runtime rt = Runtime.getRuntime();
    try{

        Process p = rt.exec(str);
        InputStream is =p.getInputStream();
        System.out.println(is.available());
        InputStreamReader in = new InputStreamReader(is);

        StringBuffer sb = new StringBuffer();
        BufferedReader buff = new BufferedReader(in);
        String line = buff.readLine();
        System.out.println(line);
        while( line != null )
        {
            sb.append(line + "\n");
        System.out.println(line);
            line = buff.readLine();
        }
        System.out.println( sb );
        if ( sb.length() != 0 ){
            File f = …
Run Code Online (Sandbox Code Playgroud)

java cmd

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

如何使用JavaScript重定向页面?

我正在使用雅虎解决方案制作一个购物中心网站.我有多个项目选项,有些项目的价格取决于选项.

雅虎不支持多种价格选择,因此我尝试为此问题找到解决方案.我的一个想法是制作多个页面并根据选项重定向页面.例如,如果客户选择了型号A,则该页面将保留在显示$ 1000的页面A​​中.如果客户选择模型B,页面将重定向到显示500美元的页面B.

我已经使用JavaScript制作了动态选项,但我想修改它以重定向页面.这是我的页面的链接:

http://parseven.com/callaway_diabloedge_iron.html

在页面中,中间有选项.如果顾客选择了他/她的手,它会显示选项,"#4 Thru AW","Lob Wedge"和"Sand Wedge".如果客户选择"Lob Wedge"或"Sand Wedge",则页面必须重定向到具有不同价格的页面.

PS:

我正在使用JavaScript生成依赖于前一个选项的选项.代码是:

<script type="text/javascript" language="javascript">
    <!--
    document.write('<select name="Iron(s)" onChange="javascript:     listboxchange     (this.options[this.selectedIndex].value);"><option value="">Select Iron(s)</option></select>')
    -->
</script>
Run Code Online (Sandbox Code Playgroud)

javascript

42
推荐指数
2
解决办法
10万
查看次数

如何在Perl模块中编写函数引用?

我正在试图弄清楚如何为Perl模块进行函数引用.我知道如何在模块外部进行,但在一个模块内部?考虑这样的代码:

==mymodule.pm==
1 sub foo { my $self = shift; ... }
2 sub bar { my $self = shift; ... }
3 sub zip {
4   my $self = shift;
5   my $ref = \&foo;
6   $self->&$foo(); # what syntax is appropriate?
7 }
==eof===
Run Code Online (Sandbox Code Playgroud)

看看上面的第5-6行.(1)首先定义函数引用,以及(2)解引用它的正确语法是什么?

perl

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

将数组传递给可变长度参数列表

如果我有一个功能

void Foo(params int[] bar){}
Run Code Online (Sandbox Code Playgroud)

以下运行正常:

int[] a1 = {1, 2, 3};
int[] a2 = {4, 5, 6};
Foo(1, 2, 3);
Foo(a1);
Run Code Online (Sandbox Code Playgroud)

但这些会导致编译错误:

Foo(a1, 1, 2, 3);
Foo(1, 2, a1);
Foo(1, a1, 2);
Foo(a1, a2, 1, 2, 3);
Run Code Online (Sandbox Code Playgroud)

因为只允许第一个参数为int [],其余的必须是int.

最后一个例子是我想做的,但语言不会让我没有先组合数组.我非常喜欢语法的简单性,我宁愿不再添加代码.有没有人有一个很好的方法来做到这一点?

c# arrays parameters

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

考虑在何处存储文档 - 在文件服务器上还是在DB中?

我有一个关于上传到我的网站的文件的设计决定:我可以将它们存储在我的文件服务器上,或者我可以将它们存储在我的数据库中的blob(MSSQL 2005).如果它对设计决定有任何影响,这些文件是保密的,必须有一定程度的保护.

我想到的考虑因素是:

  1. 存储在文件服务器上会使HUUUUUUUGE文件数量全部转储到一个目录中,因此访问速度较慢,除非我能为目录树结构计算出合理的语义定义
  2. OTOH,我猜测文件服务器可以比DB更好地处理压缩......或者我错了?
  3. 我的直觉告诉我,DB的安全性比文件服务器强,但我不确定这是否一定是真的.
  4. 不知道我的数据库中有多TB的blob会影响性能.

我非常感谢这里的一些建议.谢谢!

sql-server blob fileserver

4
推荐指数
1
解决办法
919
查看次数

Java中的顺序Guid

考虑到我对Microsoft.NET框架上的顺序guid性能所做的帖子(请参阅Sequential Guid相对于标准Guid的性能改进是什么?)是否有人拥有相同算法的正确,可靠,快速和良好工作的Java实现在Windows DLL中实现?

关心马西莫

java guid sequential

11
推荐指数
1
解决办法
6406
查看次数

如何使用jQuery执行服务器端Python脚本?

我有一个非常简单的Python文件,名为python1.py,其内容是:

f = open('C:\\Temp\\test.txt', 'w')
f.write('Succeeded')
f.close()
Run Code Online (Sandbox Code Playgroud)

我希望从JavaScript执行此操作,如下所示:

jQuery.ajax({
   type: "POST",
   url: "/cgi-bin/python1.py",
   success: function (msg) {
       alert("Data Saved: " + msg);
   }
});
Run Code Online (Sandbox Code Playgroud)

但是,所有发生的事情是我收到一条警告,向我显示Python脚本的内容.文件C:\ Temp\test.txt没有被创建,所以很明显Python没有被执行.

我如何说服代码执行Python脚本而不是只读它?

javascript python ajax jquery

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

Asp.Net - 什么是<%$?

我现在应该知道这一点,但我不知道,出于某种原因,我没有在Google上找到答案,所以我想我会在这里试试.

我知道那<%= %>相当于Response.Write()

我见过<%# %>数据绑定.

然而,今天我发现了一些新东西,即使我能看到它在做什么,我正在寻找关于此的官方文档.在我的一个网页中,我看到了

ConnectionString="<%$ ConnectionStrings:SomeConnectionString %>"
Run Code Online (Sandbox Code Playgroud)

那怎么<%$ %>办?

asp.net

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

如何在Powershell中将元素添加到数组中?

Powershell代码:

$list += "aa"
Run Code Online (Sandbox Code Playgroud)

将元素"aa"附加到list $列表中.有没有办法在前置元素?这是我的解决方案,但必须有一种方法可以在一行中完成.

$tmp = ,"aa";
$tmp += $list
$list = $tmp
Run Code Online (Sandbox Code Playgroud)

powershell

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