小编des*_*old的帖子

C#Enum标志比较

鉴于以下标志,

  [Flags]
    public enum Operations
    {
        add = 1,
        subtract = 2,
        multiply = 4,
        divide = 8,
        eval = 16,
    }
Run Code Online (Sandbox Code Playgroud)

如何实现IF条件来执行每个操作?在我的尝试中,第一个条件适用于add,eval,这是正确的.然而,第一个条件也适用于减法,eval,这是不正确的.

        public double Evaluate(double input)
    {
        if ((operation & (Operations.add & Operations.eval)) == (Operations.add & Operations.eval))
            currentResult += input;
        else if ((operation & (Operations.subtract & Operations.eval)) == (Operations.subtract & Operations.eval))
            currentResult -= input;
        else
            currentResult = input;

        operation = null;

        return currentResult;
    }
Run Code Online (Sandbox Code Playgroud)

我看不出是什么问题.

c# enums

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

正确使用.NET异常

抛出以下实例的正确异常是什么?

如果,例如,我有一个类:专辑与歌曲的集合:

List<Song>
Run Code Online (Sandbox Code Playgroud)

Album中添加歌曲的方法:

public void AddSong(Song song)
{
    songs.Add(song);
}
Run Code Online (Sandbox Code Playgroud)

如果用户尝试添加已存在的歌曲,我应该抛出异常吗?如果是这样,什么类型的例外?

我听过这样的短语:"只在异常情况下使用异常",但我想告诉客户端实现Album究竟出了什么问题(不只是返回一个布尔值).

c# exception

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

桌面上的JVM是否使用JIT编译?

我总是遇到声称Java被解释的文章.我知道Oracle的HotSpot JRE提供即时编译,但对于大多数桌面用户来说情况如此吗?例如,如果我通过以下网址下载Java:http://www.java.com/en/download,这是否包含JIT编译器?

java jit jvm

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

在Java中避免RTTI

如果我有一个超类,比如说Animal,

和两个子类:ZebraGiraffe,

如果我决定定义一个动物矢量:

Vector <Animal> animals = new Vector();
Run Code Online (Sandbox Code Playgroud)

我想说:你可以添加长颈鹿,但你必须先拥有至少一个斑马.

不使用RTTI的最佳方法是什么?(instanceof)

java oop rtti

0
推荐指数
1
解决办法
771
查看次数

将十六进制值转换为C中的char数组

我正在尝试实现一个返回十六进制值字符串的函数.我使用此函数打印出十六进制值:

void print_hex(unsigned char *hash, const hashid type) {

    int i;
    for (i = 0; i < mhash_get_block_size(type); i++) {
        printf("%.2x", hex[i]);
    }
    printf("\n");
}
Run Code Online (Sandbox Code Playgroud)

这会输出一些十六进制值,例如 71c092a79cf30c4c7e7baf46a4af3c78cedec9ae3867d1e2600ffc39d58beaf2

如何修改此函数以使其返回字符串?即

unsigned char *get_hash_str(unsigned char *hash, const hashid type) { /* ?? */ }
Run Code Online (Sandbox Code Playgroud)

(目标是稍后比较2个值)

c hash hex format-specifiers

0
推荐指数
1
解决办法
3185
查看次数

标签 统计

c# ×2

java ×2

c ×1

enums ×1

exception ×1

format-specifiers ×1

hash ×1

hex ×1

jit ×1

jvm ×1

oop ×1

rtti ×1