小编Jef*_*tin的帖子

UI 美学背后的数学原理是什么,比如色彩和谐?

我必须在我的项目中开发一个小工具,比如 Adob​​e Illustrator 或Kuler 中的“和谐色”调色板——用户可以选择一种或两种颜色,该工具会基于此建议一个 4 或 5 种“和谐”调色板。我在哪里可以找到有关此的一些文件、数学规则或其他背景?

color-scheme ui-guidelines

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

我可以在构建.net程序集时指定模块版本ID(MVID)吗?

我们有一些共享程序集,每晚都会自动构建.如果没有对源进行任何更改,我希望程序集二进制文件与先前版本完全相同.

但是,程序集之间似乎存在细微差别.

我已经做了一些努力来确定两个版本之间的区别.我曾经ildasm生成过il版本,并比较了生成的文本版本.唯一的区别(在IL中)是模块中的MVID(随机guid).

一些谷歌搜索告诉我模块版本ID由编译器生成,因此可以确定构建源,即使其他所有内容都相同.

此MVID在相同代码的构建之间创建人工差异,并对所得到的程序集进行人工检查.

是否可以将MVID提供给C#编译器?

.net c# diff assemblies binary-reproducibility

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

在您看来,什么更具可读性?(运营商)或使用if

我有一个方法会收到一个string,但在我可以使用它之前,我必须将其转换为int.有时它可以null,我必须改变它的价值"0".今天我有:

public void doSomeWork(string value)
{
   int SomeValue = int.Parse(value ?? "0"); //it can throw an exception(i know)
}
Run Code Online (Sandbox Code Playgroud)

我做到了,但我的老板让我重构它:

public void doSomeWork(string value)
{
    if(string.IsNullOrEmpty(value))
        value = "0";
    int SomeValue = int.Parse(value);
}
Run Code Online (Sandbox Code Playgroud)

在您看来,什么是最好的选择?

c# refactoring coalesce null-coalescing-operator

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

为什么每个构建都会更改exe文件?

构建相同的项目(没有任何更改)会生成二进制不同的 exe文件:它们的一些小区域是不同的.空项目,版本信息(以及每个构建的自动增量)已关闭.

为什么会这样?是否有可能让delphi为同一个项目生成二进制相等的文件?

delphi linker binary-reproducibility

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

Firefox 3.5警告该页面包含未经身份验证的内容

我们收到FF 3.5中的警告,警告未加密的内容(部分加密的页面).我们从未在FF 3.0中收到任何此类警告.我们加载的页面使用https对HTML页面执行单个get请求,不会对CSS,JS,Images等内容进行其他请求.

还有其他人遇到过FF 3.5这个问题吗?任何故障排除技术,以识别被标记为未加密的内容?

css https

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

在C#中将对象列表转换为其接口类型

我知道我可以将一个对象从它自己的类型转换为它的接口类型,如下所示:

IMyInterface myValue = (IMyInterface)MyObjectThatImplementsMyInterface;
Run Code Online (Sandbox Code Playgroud)

我怎样才能投IList<MyClassThatImplementMyInterface>IList<IMyInterface>

.net c# generics

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

如何使用System.IO.FileStream阅读希伯来语文本?

我错过了什么或System.IO.FileStream不读取包含希伯来语的Unicode文本文件?

    public TextReader CSVReader(Stream s, Encoding enc) 
    {

        this.stream = s;
        if (!s.CanRead) 
        {
            throw new CSVReaderException("Could not read the given CSV stream!");
        }
        reader = (enc != null) ? new StreamReader(s, enc) : new StreamReader(s);
    }
Run Code Online (Sandbox Code Playgroud)

谢谢乔纳森

c# filestream

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

MemoryStream的byte []缓冲区可以变化吗?

我正在将一个对象序列化为一个byte[]使用MemoryStream:

byte[] serialized = new byte[1000];
using (MemoryStream stream = new MemoryStream(serialized))
    using (TextWriter textWriter = new StreamWriter(stream))
        serializer.Serialize(textWriter, stuffToSerialize);
Run Code Online (Sandbox Code Playgroud)

有什么方法可以'serialized'根据大小来设定增长stuffToSerialize

c# serialization memorystream base-class-library

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

Qsort 没有按照我期望的方式使用 void 指针工作

所以我尝试使用 qsort 对 C 中的 void 指针的通用数组列表进行排序。

当我实际使用数组列表时,我正在存储Queue指针。

我很确定我打电话是qsort正确的

qsort(al->list, al->size, sizeof(void *), al->cf );
Run Code Online (Sandbox Code Playgroud)

在我的比较器函数中,我想这样做

int compareQCtgry(const void * queueA, const void * queueB)
{
    Queue * q1 = (Queue *) queueA;
    Queue * q2 = (Queue *) queueB;
    return strcmp(q1->category, q2->category);
}
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了段错误。

但是当我将其更改为

int compareQCtgry(const void * queueA, const void * queueB)
{
    Queue * q1 = *(Queue **) queueA;
    Queue * q2 = *(Queue **) queueB;
    return strcmp(q1->category, q2->category);
}
Run Code Online (Sandbox Code Playgroud)

它有效,但对我来说毫无意义。为什么将 void …

c pointers void-pointers

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

在事后发现非法/损坏的容器对象状态的哪个例外?

我遇到过一种情况,由于我调用的其他一些代码区域无法复制Dictionary<TKey, TValue>它返回的内容,因此会出现并发问题:Dictionary似乎包含非法的空键.

我已经修复了底层错误,但为了帮助识别这个问题,如果它将来再次出现,我会添加一些代码,在循环中显式检查null键,处理返回的字典并在事情发生之前抛出进一步.我不确定要抛出哪个异常类,或者如果我定义一个新类,我要确定哪个异类.

c# compact-framework coding-style exception .net-3.5

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