Tag: C#的

如何使用Windows程序在C ++中获取控制台输出?

如果我有一个本地的C + + Windows程序(即入口点是WinMain)如何查看控制台function,如std :: cout的输出?

.net XML序列化 – 存储引用而不是对象复制

在.Net / C#应用程序中,我有相互引用的数据结构。 当我序列化它们时.Net将所有引用与单独的对象副本序列化。 在下面的例子中,我试图序列化到'人' “人”可能会提及另一个人。 public class Person { public string Name; public Person Friend; } Person p1 = new Person(); p1.Name = "John"; Person p2 = new Person(); p2.Name = "Mike"; p1.Friend = p2; Person[] group = new Person[] { p1, p2 }; XmlSerializer ser = new XmlSerializer(typeof(Person[])); using (TextWriter tw = new […]

如何确保一个事件只订阅一次

我想确保我只在一个特定的类别上订阅一个事件。 例如,我希望能够做到以下几点: if (*not already subscribed*) { member.Event += new MemeberClass.Delegate(handler); } 我将如何去执行这样一个警卫?

使用lambdaexpression式获取属性名称和types

我正在尝试编写一个函数,使用如下所示的语法来提取属性的名称和types: private class SomeClass { Public string Col1; } PropertyMapper<Somewhere> propertyMapper = new PropertyMapper<Somewhere>(); propertyMapper.MapProperty(x => x.Col1) 有什么办法可以将这个属性传递给函数,而不会对这个语法做任何重大的修改? 我想获得属性名称和属性types。 所以在下面的例子中,我想要检索 Name = "Col1"和Type = "System.String" 谁能帮忙?

返回一个指向静态局部variables安全的指针?

我正在使用一些广泛使用返回指向静态局部variables的方式的代码。 例如: char* const GetString() { static char sTest[5]; strcpy(sTest, "Test"); return sTest; } 我是否认为这是安全的? PS,我知道这是做同样事情的一个更好的方法: char* const GetString() { return "Test"; } 编辑:道歉,function签名当然应该是: const char* GetString();

在C或C ++中,我应该检查针对NULL / nullptr的指针参数吗?

这个问题受到了这个答案的启发。 我始终认为,当调用者做了一些愚蠢的事情时,被调用者从不负责,比如传递无效参数。 我得出这个结论有几个原因,但也许最重要的一条来自这篇文章 : 没有定义的东西是未定义的。 如果一个函数没有在文档中说可以传递nullptr ,那么你最好不要传递nullptr到那个函数。 我不认为这是被调查者的责任。 但是,我知道会有一些人不同意我的观点。 我很好奇我是否应该检查这些事情,为什么。

如何检查两个Expression <Func <T,bool >>是否相同

是否有可能找出两个expression式是否相同? 像给出以下四个expression式: Expression<Func<int, bool>> a = x => false; Expression<Func<int, bool>> b = x => false; Expression<Func<int, bool>> c = x => true; Expression<Func<int, bool>> d = x => x == 5; 那么,至less我们可以看到: a == b a != c a != d 但是,我可以做任何事情在我的代码中find这个吗? 看了msdn库,在那里说 Equals :确定指定的对象是否等于当前的Object 。 (从Objectinheritance。) 我猜这意味着至lessexpression式类没有重写equals方法成为Equatable? 那么你会如何做到这一点? 还是我在这里问太多? :p

如何从键盘读取string使用C? 在char *中传递分段错误

我想读取用户input的string。 我不知道string的长度。 由于在CI中没有string声明一个指针: char * word; 并使用scanf从键盘读取input: scanf("%s" , word) ; 但是我得到了一个分段错误。 当长度未知时,如何从C中的键盘读取input?

如何在后台运行.NET控制台应用程序

我有用C#编写的控制台应用程序,计划每15分钟左右使用内置的Windows任务计划程序运行。 每次运行时,黑色控制台popup执行期间,然后closures。 我没有写任何东西到控制台。 有没有办法让这个在后台运行?

如何从C#中的静态方法调用非静态方法?

我有以下代码,我想从data2()调用data1() data2() 。 这在C#中可能吗? 如果是这样,怎么样? private void data1() { } private static void data2() { data1(); //generates error }