Tag: C#的

以编程方式更改系统date

我如何用C#编程改变本地系统的date和时间?

如何调用所有可变参数模板参数的函数?

我想做 template<typename… ArgTypes> void print(ArgTypes… Args) { print(Args)…; } 它相当于这个相当庞大的recursion链: template<typename T, typename… ArgTypes> void print(const T& t, ArgTypes… Args) { print(t); print(Args…); } 接下来是我想要打印的每种types的明确的单参数专业化。 recursion实现的“问题”是生成了大量冗余代码,因为每个recursion步骤都会产生N-1参数的新函数,而我想要的代码只会生成单个N – printfunction,最多有N专门的printfunction。

你如何得到一个variables的名称,因为它的声明是物理types的?

可能重复: 在C#中查找传递给函数的variables名 下面的课程包含实地城市。 我需要dynamic确定字段的名称,因为它是在类声明中键入的,即我需要从对象城市的实例中获取string“城市”。 我试图通过检查其在DoSomething()中的types来做到这一点,但在debugging器中检查types的内容时找不到它。 可能吗? public class Person { public string city = "New York"; public Person() { } public void DoSomething() { Type t = city.GetType(); string field_name = t.SomeUnkownFunction(); //would return the string "city" if it existed! } } 有些人在下面的答案中问我为什么要这样做。 这是为什么。 在我现实世界的情况下,城市上面有一个自定义的属性。 [MyCustomAttribute("param1", "param2", etc)] public string city = "New York"; 我需要在其他代码中的这个属性。 […]

使用.NET以相同的过程执行多个命令行

我试图执行多个命令,而不是每次创build一个新的进程。 基本上,我想启动DOS命令shell,切换到MySQL命令shell,并执行命令。 以下是我如何调用过程(也在下面)。 另外,如何处理命令中的“\”? ExecuteCommand("mysql –user=root –password=sa casemanager", 100, false); ExecuteCommand(@"\. " + Environment.CurrentDirectory + @"\MySQL\CaseManager.sql", 100, true); private void ExecuteCommand(string Command, int Timeout, Boolean closeProcess) { ProcessStartInfo ProcessInfo; Process Process; ProcessInfo = new ProcessStartInfo("cmd.exe", "/C " + Command); ProcessInfo.CreateNoWindow = false; ProcessInfo.UseShellExecute = false; Process = Process.Start(ProcessInfo); Process.WaitForExit(Timeout); if (closeProcess == true) { Process.Close(); […]

在任务中捕获exception的最好方法是什么?

使用System.Threading.Tasks.Task<TResult> ,我必须pipe理可能抛出的exception。 我正在寻找最好的方法来做到这一点。 到目前为止,我创build了一个基类来pipe理.ContinueWith(…)调用中的所有未捕获的exception.ContinueWith(…) 我想知道是否有更好的方法做到这一点。 或者即使这是一个很好的方法来做到这一点。 public class BaseClass { protected void ExecuteIfTaskIsNotFaulted<T>(Task<T> e, Action action) { if (!e.IsFaulted) { action(); } else { Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() => { /* I display a window explaining the error in the GUI * and I log the error. */ this.Handle.Error(e.Exception); })); } } } public class ChildClass : […]

C中函数的静态variables

void foo() { static int x = 5; x++; printf("%d", x); } int main() { foo(); foo(); return 0; } 什么会打印出来? 6 6或6 7 为什么?

为什么C#不实现索引属性?

我知道,我知道… Eric Lippert对这类问题的回答通常是“ 因为不值得花费devise,实施,testing和logging它 ”。 但是,我仍然想要一个更好的解释…我正在阅读关于新的C#4function的博客文章 ,以及有关COM Interop的部分,以下部分引起了我的注意: 顺便说一下,这段代码使用了一个新的特性:索引属性(仔细看看Range后面的方括号)。 但是这个特性只适用于COM interop; 您不能在C#4.0中创build自己的索引属性 。 好的,但是为什么? 我已经知道并且后悔不可能在C#中创build索引属性,但是这句话让我再次想到它。 我可以看到几个很好的理由来实现它: CLR支持它(例如, PropertyInfo.GetValue有一个index参数),所以很遗憾我们不能在C#中利用它。 它支持COM interop,如文章中所示(使用dynamic分派) 它是在VB.NET中实现的 已经有可能创build索引器,也就是将索引应用到对象本身,所以把想法扩展到属性,保持相同的语法并用属性名称replace它可能没什么大不了的 这将允许写这样的事情: public class Foo { private string[] _values = new string[3]; public string Values[int index] { get { return _values[index]; } set { _values[index] = value; } } } 目前我唯一的解决方法是创build一个实现索引器的内部类( ValuesCollection ),并更改Values属性,以便返回该内部类的实例。 这很容易做,但烦人…所以也许编译器可以为我们做! […]

genericslambda如何在C ++ 14中工作?

genericslambda在C ++ 14标准中如何工作( auto关键字作为参数types)? 它是基于C ++模板,其中每个不同的参数types编译器生成一个具有相同的主体,但replacetypes(编译时多态性)的新function,或者是更类似于Java的generics(types擦除)? 代码示例: auto glambda = [](auto a) { return a; };

“\ n”和Environment.NewLine之间的区别

如果有的话(关于.Net),两者有什么区别?

如何在C#中快速获取硬件ID?

我需要在我的程序中将许可证绑定到硬件ID。 我尝试过使用WMI,但仍然很慢。 例如,我需要CPU,硬盘和主板信息。