Tag: C#的

获取可执行文件的绝对path,使用C#?

看看这个伪代码: string exe_path = system.get_exe_path() print "This executable is located in " + exe_path 如果我构build了上述程序并将可执行文件放置在C:/meow/ ,则将打印出This executable is located in C:/meow/ ,而不pipe当前的工作目录。 我怎么能轻松地使用C#来完成这个?

Linq中的Enumerable.Zip扩展方法有什么用?

Linq中的Enumerable.Zip扩展方法有什么用?

_ =>这在Lambdaexpression式中意味着什么?

像_=> expr这样的lambdaexpression式是什么意思? _作为lambdainput的目的是什么? 例: int sum = 0; list.ForEach(_=> { sum += 1; });

如何从一个C#项目中使用另一个C#项目的类

在同样的解决scheme中,我有两个项目:P1和P2。 我怎样才能在P2中使用一个P1类?

如何执行与LINQ to SQL的CROSS JOIN?

如何执行与LINQ to SQL的CROSS JOIN?

返回在使用块的中间

就像是: using (IDisposable disposable = GetSomeDisposable()) { //….. //…… return Stg(); } 我相信这不是一个适当的回归声明的地方,是吗?

CLR定义的方法如 .BeginInvokelogging在哪里?

[编辑,完全改编:]似乎我的问题确实措辞不好,而且也不好受。 所以我希望这个完整的改写帮助… MSDN告诉清楚指定: Control.BeginInvoke()在创build控件句柄的线程上执行委托,通常这将是GUI线程。 Dispatcher.BeginInvoke()将在创buildDispatcher对象的线程上运行。 这将是我创build的任何线程。 但是对于委托, “ CLR自动定义 BeginInvoke和EndInvoke”,而这些调用在ThreadPool-thread上运行。 除了这个有点令人惊讶的不同的行为,我不知道如何find自动实现的所有function的规格。 例如:Intelli-sense显示我的委托具有DynamicInvoke()。 类System.Delegate {}确实有一个DynamicInvoke()这可能意味着我的代理inheritance它。 但委托{}没有BeginInvoke()。 而Delegate {}有几个我的委托没有的function。 另外我的委托获取GetObjectData()方法。 这似乎来自可分离的。 所以总而言之,出现一个委托从(1)CLR“自动”获取它的方法,(2)委托的一些子集可能MulticastDelegate {},可能(3)ISerializble。 我在哪里可以find委托人获得的所有方法的全面规范? 特别有趣的是BeginInvoke(),它是确切的签名,因为上述两个具有该名称的方法具有不同的签名集合。 [有人在编辑中build议“代表”是“代表”。 我敢说,不是。] 谢谢

抓取exec的输出

所以即时通讯设法写一些需要抓住命令输出的东西,然后虐待,然后将其传递给另一个程序。 但即时通讯有一个问题,我不能解决如何得到命令输出,并将其存储下面是我有什么样的 if(fork() == 0){ execl("/bin/ls", "ls", "-1", (char *)0); /* hopefully do something with the output here*/ }else{ *other stuff goes here* }` 所以基本上我不知道是否有任何方法我可以从“execl”得到的输出,并将其传递给其他东西(例如通过存储在某种缓冲区)。 任何build议将是伟大的。 谢谢你们

tellg()函数给出错误的文件大小?

我做了一个示例项目,将文件读入缓冲区。 当我使用tellg()函数时,它给了我一个比读取函数实际从文件中读取的值更大的值。 我认为有一个错误。 这里是我的代码: 编辑: void read_file (const char* name, int *size , char*& buffer) { ifstream file; file.open(name,ios::in|ios::binary); *size = 0; if (file.is_open()) { // get length of file file.seekg(0,std::ios_base::end); int length = *size = file.tellg(); file.seekg(0,std::ios_base::beg); // allocate buffer in size of file buffer = new char[length]; // read file.read(buffer,length); cout << file.gcount() […]

为什么不能控制更新/刷新中间过程

我有一个窗体(C#.net)与一个statusLabel,我似乎无法得到在事件处理程序方法中的进程中更新。 我的代码看起来像这样… void Process_Completed(object sender, EventArgs e) { string t = "Process is finished!"; this.Invoke(new StatusLabelUpdator(updateStatusLabel), new object[] { t }); } void Process_Started(object sender, EventArgs e) { string t = "Process has begun"; this.Invoke(new StatusLabelUpdator(updateStatusLabel), new object[] { t }); } private delegate void StatusLabelUpdator(string text); private void updateStatusLabel(string text) { StatusLabel1.Text = text; […]