Tag: C#的

最好的跨平台(便携式)任意精度math库

我在C或C ++中寻找一个好的任意精度的math库。 你能给我一些build议吗? 主要要求: 它必须处理任意大的整数(我的主要兴趣在于整数)。 万一你不知道这个字是什么意思的话,想象一下就是100000! (100000的阶乘)。 在库初始化/对象创build期间, 不应该指定精度。 精度只能受系统可用资源的限制。 它应该利用平台的全部力量,并且应该在本地处理“小”号码。 这意味着在64位平台上,计算2 ^ 33 + 2 ^ 32应该使用可用的64位CPU指令。 图书馆不应该在相同的平台上以与2 ^ 66 + 2 ^ 65相同的方式来计算。 (+),减法( – ),乘法(*),整数除法(/),余数(%),功率(**),增量(++),递减( – ),gcd() ,阶乘()和其他常用整数算术运算。 能够处理像sqrt()(平方根),log()(对数)等不会产生整数结果的函数是一个优点。 处理符号计算的能力甚至更好。 这是我到目前为止发现的: Java的BigInteger和BigDecimal类:我一直在使用这些。 我已经阅读了源代码,但我不明白下面的math。 它可能基于我从未学过的理论/algorithm。 内置的整数types或在bc / Python / Ruby / Haskell / Lisp / Erlang / OCaml / PHP /其他语言的核心库中:我曾经使用过其中的一些,但我不知道它们使用的是哪个库或者他们正在使用哪种types的实现。 我已经知道: 使用char作为十进制数字, […]

在c#中用于金钱的最佳数据types是什么?

在c#中用于金钱的最佳数据types是什么?

我如何从活动目录获取用户列表?

我如何从活动目录获取用户列表? 有没有办法拉用户名,名字,姓? 我看到一个类似的post,在这里使用: PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "YOURDOMAIN"); 我从来没有做过任何活动目录,所以我完全失去了。 任何帮助将不胜感激!

使用C ++macros的可选参数

有什么方法获得可选参数与C ++macros? 某种超载也会很好。

ReadOnlyCollection或IEnumerable暴露成员集合?

如果调用代码只遍历集合,是否有任何理由将内部集合公开为ReadOnlyCollection而不是IEnumerable? class Bar { private ICollection<Foo> foos; // Which one is to be preferred? public IEnumerable<Foo> Foos { … } public ReadOnlyCollection<Foo> Foos { … } } // Calling code: foreach (var f in bar.Foos) DoSomething(f); 正如我所看到的IEnumerable是ReadOnlyCollection接口的一个子集,它不允许用户修改集合。 所以,如果IEnumberable接口是足够的那就是使用的那个。 这是一个适当的推理方式,或者我错过了什么? 谢谢/ Erik

如何将可变数量的parameter passing给printf / sprintf

我有一个类包含一个“错误”函数,将格式化一些文本。 我想接受可变数量的参数,然后使用printf格式化它们。 例: class MyClass { public: void Error(const char* format, …); }; Error方法应该在参数中调用printf / sprintf来格式化,然后用它做些什么。 我不想自己编写所有的格式,所以试图找出如何使用现有的格式是有意义的。

POSIX线程和信号

我一直在试图理解POSIX线程和POSIX信号如何交互的复杂性。 我特别感兴趣的是: 控制信号传递到哪个线程的最好方法是什么(假设它首先不是致命的)? 告诉另一个线程(实际上可能很忙)信号已经到达的最好方法是什么? (我已经知道从信号处理程序中使用pthread条件variables是一个坏主意。) 我怎么能安全地处理一个信号发生的信息传递给其他线程? 这是否需要在信号处理程序中发生? (我一般不想杀死其他线程,我需要一个更微妙的方法。) 有关为什么我想要这个参考,我正在研究如何转换TclX包以支持线程,或分裂它,至less使一些有用的部分支持线程。 信号是特别感兴趣的部分之一。

如何以编程方式检查iphone应用程序中是否存在键盘?

我需要检查我的iPhone应用程序的键盘可见性的条件。 喜欢: if(keyboardIsPresentOnWindow) { //Do action 1 } else if (keyboardIsNotPresentOnWindow) { //Do action 2 } 我怎样才能检查这种情况?

使用Excel OleDb来获取表格名称

我使用OleDb从Excel工作簿中读取很多工作表。 我需要阅读工作表名称,但是我需要他们在电子表格中定义的顺序; 所以如果我有一个这样的文件, |_____|_____|____|____|____|____|____|____|____| |_____|_____|____|____|____|____|____|____|____| |_____|_____|____|____|____|____|____|____|____| \__GERMANY__/\__UK__/\__IRELAND__/ 然后我需要得到字典 1="GERMANY", 2="UK", 3="IRELAND" 我试过使用OleDbConnection.GetOleDbSchemaTable() ,这给了我名单的名单,但它按字母顺序sorting他们。 阿尔法sorting意味着我不知道一个特定的名字对应的纸张编号。 所以我得到 GERMANY, IRELAND, UK 这改变了UK和IRELAND的秩序。 我需要对它进行sorting的原因是我必须让用户通过名称或索引来select一个范围的数据; 他们可以要求“从德国到爱尔兰的所有数据”或“从表格1到表格3的数据”。 任何想法将不胜感激。 如果我可以使用办公室interop类,这将是直接的。 不幸的是,我不能这样做,因为互操作类在非交互式环境(如windows服务和ASP.NET网站)中不能可靠地工作,所以我需要使用OLEDB。

而(1)比。 for(;;)有速度差吗?

长版… while (1)在Perl脚本中使用while (1) for (;;)的速度更快,这for (;;)一名同事今天声称的。 我认为他们应该也是希望翻译能够优化任何差异。 我build立了一个循环迭代运行10亿次的脚本,以及相同数量的while循环,并logging它们之间的时间。 我无法find可观的区别。 我的同事说,一位教授告诉他, while (1)正在做一个比较1 == 1 , for (;;)不是。 我们使用C ++重复了100次的迭代次数,差异可以忽略不计。 然而,这是一个graphics化的例子,说明编译代码与脚本语言相比有多快。 短版… 如果你需要一个无限循环来打破,那么有没有什么理由更喜欢while (1)一个for (;;) ? 注意:如果问题不清楚。 这纯粹是几个朋友之间有趣的学术讨论。 我意识到这不是一个所有程序员都应该为之苦恼的超级重要的概念。 感谢所有伟大的答案(我确信其他人)从这个讨论中学到了一些东西。 更新:上面提到的同事在下面回答了一个答案。 引用这里,以防被埋葬。 它来自AMD程序员。 他表示,C程序员(人员)没有意识到他们的代码效率低下。 他今天说,海湾合作委员会的编译器是非常好的,并把像他这样的人停业。 他举例说,并且告诉了我关于while 1 vs for(;;) 。 我现在习惯使用它,但gcc,特别是解释器,现在都做同样的操作(处理器跳转),因为它们被优化了。