Tag: C#的

在Visual Studio c#项目中自动embeddedmercurial修订信息

原始问题 在构build我们的项目时,我希望将每个存储库的mercurial idembedded到该存储库(库,应用程序或testing应用程序)的产品中。 我发现如果您确切地知道构build他们正在使用的应用程序的特定版本是什么,那么debugging由客户8时区以外的应用程序将更容易。 因此,我们系统中的每个项目(应用程序或库)都实现了获取相关修订信息的方法。 我也发现能够查看应用程序是否已经使用来自存储库的干净的(未修改的)变更集进行编译是非常有用的。 当存储库中存在未提交的更改时,“Hg id”有用地将+添加到变更集标识,因此,这使我们可以轻松查看人们是否正在运行干净的或修改的代码版本。 我现在的解决scheme在下面有详细介绍,并且满足了基本的要求,但是它有一些问题。 当前解决scheme 目前,对于每个Visual Studio解决scheme,我添加以下“预生成事件命令行”命令: cd $(ProjectDir) HgID 我还将一个HgID.bat文件添加到Project目录中: @echo off type HgId.pre > HgId.cs For /F "delims=" %%a in ('hg id') Do <nul >>HgID.cs set /p = @"%%a" echo ; >> HgId.cs echo } >> HgId.cs echo } >> HgId.cs 以及一个HgId.pre文件,其定义如下: namespace My.Namespace { /// <summary> Auto […]

如何在没有安装MS Office的机器上使用Microsoft.Office.Interop.Excel?

我正在写一个适用于excel文件的应用程序。 我需要一个function来删除工作表。 我必须使用程序集Microsoft.Office.Interop.Excel.dll。 它在开发人员机器上运行良好,但是当我尝试将其部署在服务器上时,出现错误: 无法加载文件或程序集“Office,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c”或其某个依赖关系 我明白,当一台机器上没有安装MS Office时会出现这个问题。 客户不想以任何代价在服务器上安装和购买MS Office。 我在开发者机器上安装了“Redistributable Primary Interop Assemblies”,build议在这里: http : //forums.asp.net/t/1530230.aspx/1并重新编译我的项目。 代码示例: public bool DeleteSheet(string tableName) { Excel.Application app = null; Excel.Workbooks wbks = null; Excel._Workbook _wbk = null; Excel.Sheets shs = null; bool found = false; try { app = new Excel.Application(); app.Visible […]

Eric Niebler如何实现std :: is_function?

上周,Eric Niebler为std::is_function traits类推送了一个非常紧凑的实现: #include <type_traits> template<int I> struct priority_tag : priority_tag<I – 1> {}; template<> struct priority_tag<0> {}; // Function types here: template<typename T> char(&is_function_impl_(priority_tag<0>))[1]; // Array types here: template<typename T, typename = decltype((*(T*)0)[0])> char(&is_function_impl_(priority_tag<1>))[2]; // Anything that can be returned from a function here (including // void and reference types): template<typename T, typename = […]

并行字典正确使用

我正确地认为这是一个并行字典的正确使用 private ConcurrentDictionary<int,long> myDic = new ConcurrentDictionary<int,long>(); //Main thread at program startup for(int i = 0; i < 4; i++) { myDic.Add(i, 0); } //Seperate threads use this to update a value myDic[InputID] = newLongValue; 我没有锁等,只是更新字典中的值,即使多个线程可能会尝试做同样的事情。

char和char的区别

在C ++中使用char和char [1]之间有什么区别(如果有的话)。 例子: struct SomeStruct { char x; char y[1]; }; 对于unsigned char是否遵循相同的原因?

为什么在类/结构级别内不允许使用“namespace X;”?

class C { using namespace std; // error }; namespace N { using namespace std; // ok } int main () { using namespace std; // ok } 编辑 :想知道背后的动机。

有没有一个asp.net小提琴?

类似jsfiddle ,有没有一个asp.net小提琴网站,我们分享asp.net代码小提琴? 这将大大帮助asp.net开发人员。 目前在SO上发布asp.net代码的方式并不那么友好。 我希望有一些东西可以让这更容易。 如果没有这样的事情(就像我做了一些search,但找不到)。 这是甚至在技术上可以开发的事情,因为C#不是一个晚期绑定语言。

为什么string的小写字母和大写字母版本存在,应该使用哪一个?

好吧,这可能是一个愚蠢的问题,但我一直没能find任何信息。 是String.Empty和string.Empty是一样的吗? 我总是发现自己倾向于使用大写字母版本(String.Empty),因为我喜欢它的颜色和外观在我的IDE比小写字母版本(string.Empty)… 有没有一种“正确”的方式来使用这些不同的,或完全是个人喜好? 这是我的假设,他们都是一样的,但说实话,我从来没有想过,直到今天,无论如何,我想知道如果他们都存在,他们都必须存在的理由。 有没有人知道的原因? 如果是这样,那是什么? 任何人都可以启发我吗? PS“确切的重复”只回答了问题的一半 – “哪一个是对的?”,而不是“他们为什么都存在? 完全重复 : C#中的string和string有什么区别? 完全重复 : string与C#中的string

如果Int32只是int的别名,Int32类如何使用int?

一直在浏览.NET Framework Reference Source的 .NET源代码,只是为了好玩。 发现了一些我不明白的东西。 有一个Int32.cs文件,用于Int32types的C#代码。 不知何故,这对我来说似乎很奇怪。 C#编译器如何编译Int32types的代码? public struct Int32: IComparable, IFormattable, IConvertible { internal int m_value; // … } 但在C#中这不是非法的吗? 如果int只是Int32的别名 ,则它将无法编译错误CS0523 : types为“struct1”的结构成员“struct2字段”会在结构布局中产生一个循环。 在编译器中是否有一些神奇的东西,还是我完全偏离了轨道?

为什么是DateTime.Now属性而不是方法?

看完这个博客条目后: http : //wekeroad.com/post/4069048840/when-should-a-method-be-a-property , 我想知道为什么微软在C#中select: DateTime aDt = DateTime.Now; 代替 DateTime aDt = DateTime.Now(); 最佳实践说:连续两次调用成员时使用方法产生不同的结果 DateTime.Now是非确定性方法/属性的完美例子。 你知道这个devise是否有任何理由? 或者如果这只是一个小错误?