Tag: C#的

检查特定机器上是否存在服务,而不使用exception处理

不知道是否有更好的方法来做到这一点,所以这是问题的原因。 我可以使用下面的代码检查特定机器上是否存在服务: bool DoesServiceExist(string serviceName, string machineName) { ServiceController controller = null; try { controller = new ServiceController(serviceName, machineName); controller.Status; return true; } catch(InvalidOperationException) { return false; } finally { if (controller != null) { controller.Dispose(); } } } 但对我来说这似乎是一个无效的解决scheme(由于exception处理)。 有没有更好的方法来检查服务是否存在。 注意 – 我最近转向.Net 4.0,所以如果有人知道在4.0中更好的解决scheme是可以接受的。 编辑:这是一个示例c#控制台应用程序来testing我的示例以及GetServices代码示例的性能。 在我的testing中,我发现GetServices在服务不存在的情况下性能要好得多,但在服务存在的时候速度要慢两倍: static void Main(string[] args) { string serviceName = […]

C#比较两个未知types的对象(包括引用和值types)

是否有可能在C#中使用它们的types比较器比较两个未知types的对象(包括引用types和值types)是否存在? 我们的目标是编写一个具有如下签名的函数: public bool Compare(object a, object b) { // compare logic goes here } 哪会回来 Compare(100d, 100d) == true Compare(100f, 100f) == true Compare("hello", "hello") == true Compare(null, null) == true Compare(100d, 101d) == false Compare(100f, null) == false // Use type comparators where possible, ie: Compare(new DateTime(2010, 12, 01), new DateTime(2010, 12, 01)) […]

HashSet允许重复的项目插入 – C#

这种看起来像一个noob问题,但我无法具体find这个问题的答案。 我有这个class级: public class Quotes{ public string symbol; public string extension } 我正在使用这个: HashSet<Quotes> values = new HashSet<Quotes>(); 不过,我可以多次添加相同的Quotes对象。 例如,我的Quotes对象的'symbol'等于'A','extension'等于'= n',这个Quotes对象在HashSet中多次出现(通过debugging模式查看Hashset)。 打电话的时候我曾经想过 values.Add(new Quotes(symb, ext)); 使用相同的symb和ext,将返回“false”,并且不会添加元素。 我有一种感觉,它与HashSet添加新对象时比较Quotes对象有关。 任何帮助将不胜感激!

将字典绑定到中继器

我有一个字典对象<string, string>并希望将其绑定到一个中继器。 不过,我不确定要在aspx标记中放置什么来实际显示键值对。 没有错误抛出,我可以得到它与List工作。 我如何得到一个字典显示在中继器?

自定义属性对抽象属性的inheritance

我有一个自定义属性,我想要应用到我的基本抽象类,以便我可以跳过HTML中显示项目时用户不需要查看的元素。 看来覆盖基类的属性不会inheritance属性。 重写基本属性(抽象还是虚拟)会吹走放置在原始属性上的属性? 从属性类定义 [AttributeUsage(AttributeTargets.Property, Inherited = true, AllowMultiple = false)] public class NoHtmlOutput : Attribute { } 从抽象类定义 [NoHtmlOutput] public abstract Guid UniqueID { get; set; } 从具体类的定义看 public override Guid UniqueID{ get{ return MasterId;} set{MasterId = value;}} 从类检查属性 Type t = o.GetType(); foreach (PropertyInfo pi in t.GetProperties()) { if (pi.GetCustomAttributes(typeof(NoHtmlOutput), true).Length == 1) […]

什么是std :: function的性能开销?

我听到在论坛上使用std::function<>会导致性能下降。 这是真的吗? 如果属实,这是一个很大的性能下降?

在C#中的单个文件上使用FileSystemWatcher

当我尝试将观察者path设置为如下所示的单个文件时: watcher.Path = filePath1; 我得到的错误: The directory name C:\Cromos 3.0\repository\diagnostics\dwm01_2011_06_13__09_03.LXD is invalid. 你只能设置path到文件夹目录吗?

将word2vec bin文件转换为文本

从word2vec网站,我可以下载GoogleNews-vectors-negative300.bin.gz。 .bin文件(大约3.4GB)是对我无用的二进制格式。 Tomas Mikolov 向我们保证 :“将二进制格式转换为文本格式应该相当简单(尽pipe这会占用更多的磁盘空间)。检查距离工具中的代码,读取二进制文件相当简单。 不幸的是,我不知道C了解http://word2vec.googlecode.com/svn/trunk/distance.c 。 据说gensim也可以做到这一点,但我发现的所有教程似乎是从文本转换,而不是其他方式。 有人可以build议修改C代码或说明gensim发出文字?

是否有可能将重写的方法标记为final

在C#中,是否有可能将重写的虚拟方法标记为final,以便实现者不能重写它? 我该怎么做? 一个例子可能会让人更容易理解: class A { abstract void DoAction(); } class B : A { override void DoAction() { // Implements action in a way that it doesn't make // sense for children to override, eg by setting private state // later operations depend on } } class C: B { // This would be […]

如何清除C中的控制台屏幕?

除了使用system("cls")之外,是否有清除C中控制台窗口的“正确”方法?