Tag: C#的

为什么GCC在分配variables之前将variables移动到临时位置?

在看一些反编译的C代码时,我看到了这个: movl -0xc(%rbp), %esi movl %esi, -0x8(%rbp) 这对应于这个C代码: x = y; 这让我想到:gcc如何将y移动到%esi ,然后将%esi移动到x而不是直接将y移动到x ? 这是整个C和反编译的代码,如果它很重要: C int main(void) { int x, y, z; while(1) { x = 0; y = 1; do { printf("%d\n", x); z = x + y; x = y; y = z; } while(x < 255); } } 反编译 pushq %rbp […]

用于.NET的SVN库?

任何可用的库来访问.net应用程序的SVN(使用C#)。 到目前为止,我发现的只有3个: SVN# SharpSVN NSvn 我想创build一个非常简单的SVN客户端!

使用通用方法实现接口

我在这一个空白,似乎无法find我写的任何以前的例子。 我试图实现一个通用的接口类。 当我实现接口时,我认为有些东西不能正常工作,因为Visual Studio会不断产生错误,说我并没有实现通用接口中的所有方法。 以下是我正在使用的一个存根: public interface IOurTemplate<T, U> { IEnumerable<T> List<T>() where T : class; T Get<T, U>(U id) where T : class where U : class; } 那么我的class级应该怎样?

C#:foreach中的yield返回失败 – body不能是一个迭代器块

考虑这一点混淆的代码。 其目的是通过匿名构造函数即时创build一个新对象,并yield return它。 目标是避免维护一个本地集合只是为了简单地return它。 public static List<DesktopComputer> BuildComputerAssets() { List<string> idTags = GetComputerIdTags(); foreach (var pcTag in idTags) { yield return new DesktopComputer() {AssetTag= pcTag , Description = "PC " + pcTag , AcquireDate = DateTime.Now }; } } 不幸的是,这段代码产生了一个exception: 错误28“Foo.BuildComputerAssets()”的主体不能是迭代器块,因为“System.Collections.Generic.List”不是迭代器接口types 问题 这个错误信息是什么意思? 我怎样才能避免这个错误,并正确使用yield return ?

寻找一个多边形的质心?

为了得到中心,我已经尝试过,为每个顶点添加总数,除以顶点的数量。 我也试图find最顶端,最底部 – >中点…find最左边,最右边,find中点。 这两个都没有返回完美的中心,因为我依靠中心来缩放多边形。 我想缩放我的多边形,所以我可以在他们周围放一个边框。 考虑到多边形可以是凹面的,凸的,并且具有许多不同长度的多边形,find多边形的质心的最好方法是什么?

如何使用cout打印0x0a而不是0xa?

我怎样才能打印0x0a,而不是使用cout 0xa? #include <iostream> using std::cout; using std::endl; using std::hex; int main() { cout << hex << showbase << 10 << endl; }

你应该unit testing简单的属性?

你应该unit testing一个类的简单属性,声明一个值被设置和检索? 或者,这真的只是unit testing语言? 例 public string ConnectionString { get; set; } testing public void TestConnectionString() { var c = new MyClass(); c.ConnectionString = "value"; Assert.Equal(c.ConnectionString, "value"); } 我想我没有看到那个价值。

如何使用HttpClient发布数据?

我从Nuget得到了这个 HttpClient。 当我想要获取数据时,我这样做: var response = await httpClient.GetAsync(url); var data = await response.Content.ReadAsStringAsync(); 但问题是我不知道如何发布数据? 我必须发送一个post请求并发送这些值: comment="hello world"和questionId = 1 。 这些可以是一个类的属性,我不知道。 更新我不知道如何将这些值添加到HttpContent作为后期方法需要它。 httClient.Post(string, HttpContent);

IoC容器的例子

有没有人有很好的IoC容器的例子(最好在C#中)以及如何以及为什么使用它们? 我已经检查了wiki页面和Ayende的例子,但我还没有完全理解这个概念。 何时何地使用IoC容器?

如何在C#中编写超快的文件stream代码?

我必须将一个巨大的文件分成许多小文件。 每个目标文件都由偏移量和长度定义为字节数。 我使用下面的代码: private void copy(string srcFile, string dstFile, int offset, int length) { BinaryReader reader = new BinaryReader(File.OpenRead(srcFile)); reader.BaseStream.Seek(offset, SeekOrigin.Begin); byte[] buffer = reader.ReadBytes(length); BinaryWriter writer = new BinaryWriter(File.OpenWrite(dstFile)); writer.Write(buffer); } 考虑到我不得不把这个函数调用大约10万次,速度非常慢。 有没有办法让作家直接连接到读者? (也就是说,实际上没有将内容加载到内存中的缓冲区中。)