Tag: C#的

我需要在.NET中使用Microsoft.Office.Interop.Excel?

我有兴趣使用C#来操纵/自动化Excel文件。 浏览网页后,我发现VSTO,但似乎你不能在Visual Studio速成版中使用,所以我不能使用它。 就在几分钟前,我注意到这个网站中的一个问题,在代码中使用了这个命名空间: 的Microsoft.Office.Interop.Excel 所以我想知道是否所有我需要使用的是添加必要的参考,如果是的话,哪些参考添加? UPDATE 我将“主互操作程序集”安装为接受的答案,但由于某些原因,它们在“.NET”下的“添加引用”对话框中仍然缺失,但它们存在于GAC中。 所以我只是使用“浏览”添加引用,并在GAC文件夹中findMicrosoft.Office.Interop.Excel.dll 。 但在本网站寻找类似的问题,关于添加GAC的参考,似乎不build议这样做。

entity framework回滚并删除错误的迁移

我正在使用EF 6.0在C#中使用手动迁移和更新的项目。 我在数据库上有大约5次迁移,但是我意识到最后一次迁移是坏的,我不想要它。 我知道我可以回滚到以前的迁移,但是当我添加一个新的(固定的)迁移并运行Update-Database时,即使是错误的迁移也会被应用。 我试图回滚到以前的迁移,并删除具有不良迁移的文件。 但是,当我尝试添加新的迁移时,在更新数据库时出现错误,因为迁移文件已损坏(更具体地说,第一行代码将表A重命名为B,然后是下一行,EF正试图用名字A – 也许这是一些EF错误)。 是否有一些查询我可以运行,这将告诉EF像“忘记最后一次迁移像它从来没有存在,这是不好的”? 像删除迁移。 编辑1我find适合我的解决scheme。 将模型更改为良好状态并运行Add-Migration TheBadMigration -Force 。 这将重新构build最后的,而不是应用的迁移。 无论如何,这还不能完全回答原来的问题。 如果我UpdateDatabase的错误迁移,我没有find好的方式如何回滚和创build新的迁移,不包括坏的。 谢谢

我正在使用哪个版本的C#

我的问题就像看起来一样简单:我想知道我正在使用哪个版本的C#。 如果我将使用Python,我会做类似python -V从命令行,或键入 import sys print sys.version 在PHP中,我会做这样的事情: phpinfo(); 在java: java -version 但是我无法find如何在C#中实现这一点。 我对C#完全陌生,所以请不要太狠狠的打我。 有什么让我感到惊讶的是,我无法在SO上find这个答案,所以我认为我在找东西时错过了某些东西或者错误。 顺便说一句, 这个问题没有回答,虽然名字暗示它应该。 谢谢你的答案。 现在我知道它取决于.NET框架,但有没有一个编程框架的程序化方式? (不必去目录并检查我的.NET文件夹的名称)

C#构造函数执行顺序

在C#中,当你这样做 Class(Type param1, Type param2):base(param1) 是先执行的类的构造函数,然后调用超类的构造函数,或者先调用基构造函数?

如何将string转换为C#中的整数

如何将string转换为C#中的整数?

无法将目标平台更改为“任何CPU”

我在一台x86电脑上工作,并在VS2010中使用.NET4.0(与3.5一样的probelem)。 当我创build一个新的项目(例如WinFormsApp)时,我想要做的第一件事就是将项目/解决scheme的目标平台更改为“任何CPU”。 我做了以下几点: Project Properties – > build – >将TargetPlatform更改为“Any CPU” 在属性页的顶部平台仍然是“活动(x86)”,所以我这样做 解决scheme属性 – > ConfigurationsMgr – >平台 – >新(因为只有x86是可用的),并创build解决scheme平台“任何CPU”。 现在项目属性是“活动(任何CPU)”,我可以根据需要来回改变它。 而现在的问题是:当我添加一个新的项目时,它又被设置为“活动(x86)”,我保持不变 – 不能更改项目设置。 在第二个项目的SolutionProperties – > ConfigurationManager中,“Any CPU”平台不可用,我不能添加新的平台,因为它告诉我,AnyCPU的解决scheme平台已经存在… 我究竟做错了什么? 将新创build的项目设置为AnyCPU会很难吗?

嵌套的for循环的数量是否有限制?

由于一切都有限制,我想知道是否有嵌套for循环的数量的限制或只要我有内存,我可以添加它们,Visual Studio编译器可以创build这样一个程序? 当然64个或更多的嵌套for循环将不方便debugging,但它是可行的吗? private void TestForLoop() { for (int a = 0; a < 4; a++) { for (int b = 0; b < 56; b++) { for (int c = 0; c < 196; c++) { //etc…. } } } }

为什么一个lambda具有1个字节的大小?

我正在使用C ++中的一些lambdas的内存,但是我对它们的大小感到有点困惑。 这是我的testing代码: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout << &f << std::endl; std::cout << sizeof(f) << std::endl; } 你可以在这里运行它: http : //fiddle.jyt.io/github/b13f682d1237eb69ebdc60728bb52598 ouptut是: 17 0x7d90ba8f626f 1 这表明我的lambda的大小是1。 这怎么可能? lambda是不是应该至less指向它的实现?

为什么C#如果不是可选的,会中断?

当我在VS2008 C#中创build一个switch语句就像这样(人为的): switch (state) { case '1': state = '2'; case '2': state = '1'; } 它抱怨我不允许通过: 控件不能从一个案例标签('case'1'(0x31):')到另一个案例标签 如果你不允许的话,那么break发言的目的是什么呢? 为什么语言devise者不把它抛出去,自动跳到switch语句的结尾,而不是强迫我们放入一个不必要的结构?

如何正确alignmentStatusStrip中的控件?

我正在尝试alignmentStatusStrip一个控件。 我怎样才能做到这一点? 我没有看到在ToolStripItem控件上设置的属性,这些控件在父级StatusStrip上指定它们的物理alignment方式。 我怎样才能让消息下降到正确的位置? http://i.friendfeed.com/ed90b205f64099687db30553daa79d075f280b90