Tag: C#的

parsing性能(如果,TryParse,Try-Catch)

我知道很多关于处理信息parsing文本的不同方法。 例如,parsing整数可以预期什么样的性能。 我想知道是否有人知道这个好的数据。 我正在寻找一些经过testing的人的真实数字。 哪些在哪些情况下提供最佳性能? Parse(…) // Crash if the case is extremely rare .0001% If (SomethingIsValid) // Check the value before parsing Parse(…) TryParse(…) // Using TryParse try { Parse(…) } catch { // Catch any thrown exceptions }

用来表示ANSI(C89 / 90)C中的一个字节的types?

ANSI(C89 / 90)C中是否有标准投诉方法来表示字节? 我知道,通常情况下,字符恰好是一个字节,但我的理解是,这并不能保证是这样的。 另外,在C99标准中有stdint.h,但在C99之前使用了什么? 我对8位特别感兴趣,还有一个“字节”(sizeof(x)== 1)。

从URL获取域名?

我正在尝试从URLstring中提取域名。 我几乎拥有它…我正在使用URI 我有一个string..我的第一个想法是使用正则expression式,但后来我决定使用URI类 http://www.google.com/url?sa=t&source=web&ct=res&cd=1&ved=0CAgQFjAA&url=http://www.test.com/&rct=j&q=test&ei=G2phS-HdJJWTjAfckvHJDA&usg=AFQjCNFSEAztaqtkaIvEzxmRm2uOARn1kQ 我需要将以上转换为google.com和谷歌没有www 我做了以下 Uri test = new Uri(referrer); log.Info("Domain part : " + test.Host); 基本上这返回www.google.com ….我想尝试和返回2表格,如果可能的话……如上所述… google.com和谷歌 这可能与URI?

在C#中testing数组的相等性

我有两个数组。 例如: int[] Array1 = new[] {1, 2, 3, 4, 5, 6, 7, 8, 9}; int[] Array2 = new[] {9, 1, 4, 5, 2, 3, 6, 7, 8}; 确定它们是否具有相同元素的最好方法是什么?

为什么C需要“struct”关键字而不是C ++?

我一直对这里发生的事情有点困惑: #include <stdio.h> int main() { timeval tv; tv.tv_sec = 1; for (;;) { select(0, 0, 0, 0, &tv); printf("%s\n", "Hello World!"); } } 对不起,如果没有编译,只是把它写成一个简单的例子。 这样的代码不会在gcc下编译,除非在使用struct timeval之前添加关键字struct 。 另一方面,g ++可以很好地处理它。 这是C和C ++如何处理结构之间的差异,还是只是在编译器的差异? (我是非常面向C ++的,并且像这样在C语言中使用struct会让我感到困惑)。

操作可能会破坏运行时的稳定?

我在理解这里出现的问题上有点麻烦。 我有一些代码使用LINQ从数据库中提取logging,并将它们放入一个投射到界面的对象中。 它看起来有点像这样: public IEnumerable<ISomeObject> query() { return from a in dc.SomeTable select new SomeObject { //Assign various members here } as ISomeObject; } 当我testing这个时,我把返回的IEnumerable放到一个名为results的variables中,并运行这一行: Assert.AreEqual(EXPECTED_COUNT, results.Count()); 当这个运行时,我得到一个System.Security.VerificationException:“操作可能会破坏运行时。” 我在这里find了解决scheme,这是: var results = from a in dc.SomeTable select new SomeObject { //Assign various members here } as ISomeTable; return results.OfType<ISomeObject>(); 这工作,但我无法理解这里发生了什么。 为什么我首先得到exception,以及上面的代码行是如何解决的呢? MSDN文档似乎表明,这是一个types安全的问题,但我没有看到以前的代码types不安全的地方。 更新更多的信息,我发现了。 第一个例子工作,如果我使返回typesIQueryable。 这对于发生了什么问题有了更多的了解 […]

dynamic创build一个匿名types?

我想创build一个匿名types,我可以dynamic地设置属性名称。 它不一定是一个匿名types。 我想要实现的是dynamic设置任何对象的属性名称。 它可以是ExpandoObject等,但字典不会为我工作。 你有什么build议? 非常感谢

什么时候可以捕获OutOfMemoryException以及如何处理它?

昨天我参加了关于SO的讨论,讨论了OutOfMemoryException以及处理它的优点和缺点( C#try {} catch {} )。 我的专业人员处理它是: OutOfMemoryException被抛出的事实通常并不意味着程序的状态被破坏; 根据文档“下面的Microsoft中间(MSIL)指令抛出OutOfMemoryException:box,newarr,newobj”只是(通常)意味着CLR试图find一个给定大小的内存块,并无法做到这一点; 这并不意味着我们的处置没有单个字节; 但是并不是所有的人都同意这个观点,并且在这个exception之后推测出未知的程序状态,并且由于需要更多的内存而无法做一些有用的事情。 所以我的问题是:什么是严重的原因不处理OutOfMemoryException并立即放弃,当它发生? 编辑:你认为OOME和ExecutionEngineException一样致命吗?

为什么ArrayList没有标记?

经过深入的思考和研究ArrayList的实现,我个人真的很想说已经过时了,我没有理由在2.0之后使用这个类 。 但是因为它没有被标记为[Obsolete] ,有什么用法我不知道,比使用generics类更好吗? 如果是的话,请举个例子。 谢谢。 编辑让我们以List<T>为例,它提供了ArrayList所有function,并且是强types的。 那么我们什么时候需要使用ArrayList呢? 也许有时它有更好的performance? 我不知道。 我很感激你能否给我看一些ArrayList特别之处。

生成尾调用操作码

出于好奇,我试图用C#生成一个尾调用操作码。 斐波纳契是一个很容易的,所以我的c#例子看起来像这样: private static void Main(string[] args) { Console.WriteLine(Fib(int.MaxValue, 0)); } public static int Fib(int i, int acc) { if (i == 0) { return acc; } return Fib(i – 1, acc + i); } 如果我在发行版中构build它,并且在不进行debugging的情况下运行,我不会发生堆栈溢出。 debugging或运行它没有优化,我确实得到一个堆栈溢出,这意味着在优化(这是我所期望的)发布时,尾部调用正在工作。 这个MSIL看起来像这样: .method public hidebysig static int32 Fib(int32 i, int32 acc) cil managed { // Method Start RVA 0x205e […]