草庐IT

cmake编译

全部标签

c# - 在编译时强制进行狭窄的隐式强制转换

我正在尝试定义一个结构,该结构使用具有有限范围数字的变量和来自整数的隐式强制转换。如果此结构使用任何常量或其他硬编码值,我希望能够强制生成错误。这是我正在尝试完成的示例。bytea=123;//Allowedbyteb=123123;//Notallowedconstintx=123;constinty=123123;bytec=x;//Allowedbyted=y;//Notallowed理想情况下,我希望能够,例如,将数字限制在1到99之间,以便MyStructs=50;有效,但MyStructs=150;导致像上面的字节b和d那样的编译时错误。我找到了somethingsimil

c# - 为什么 C# 编译器可以 "see"静态属性,而不是实例方法,在未引用的 DLL 中的类?

我的问题的前提,用简单的英语:名为Foo的库依赖于名为Bar的库Foo中的类扩展了Bar中的类Foo定义简单传递给Bar的属性/方法应用程序FooBar仅依赖于Foo考虑以下示例:classProgram{staticvoidMain(string[]args){Foofoo=Foo.Instance;intid=foo.Id;//Compilerishappyfoo.DoWorkOnBar();//Compilerisnothappy}}Foo定义如下publicclassFoo:Bar{publicnewstaticFooInstance{get=>(Foo)Bar.Instanc

c# - ASP.NET sass/scss 在运行时和编译时编译?

我正在寻找一种在运行时和编译时编译我的.scss文件的解决方案。我需要两者的原因是我们的设计师在Mac上工作,并且更喜欢在运行时(尤其是在开发阶段)动态编译他们的.scss文件。另一方面,我需要编译时支持来验证SCSS在我的构建过程中是否成功编译。如果SCSS无法编译,我的目标是让构建失败。我在NuGet上发现了几个可用的库,但是,每个库中的小缺陷都让我望而却步。是否有适用于这两种情况的解决方案?以下是我的研究成果:运行时支持BundleTransformer.SassAndScss通过HttpHandler(与Bourbon一起工作,尽管很慢)Cassette.Sass(由于erro

c# - 为什么枚举中不允许​​字段引用(或者这是编译器错误?)

当我使用下面的代码时:usingSystem;namespaceFoo{[Flags]publicenumBar:ulong{None=0x0000000000000000,A=0x8000000000000000,B=0x0000000000000001L|A,C=0x0000000000000002L|B,D=0x0000000000000004L|A,All=A|B|C|D}}单声道编译器崩溃。这是由于语义错误(语言中不允许的错误)造成的,但编译器没有注意到,还是编译器错误?版本:Mono2.10.8.1我已经在bugzilla(https://bugzilla.xamarin.

c# - 如何在已编译的表达式树中调试或设置 break 语句?

当外部库包含LINQ提供程序时,它会在执行动态表达式树时抛出异常,我该如何在抛出该表达式时中断?例如,我使用第三方LINQ2CRM提供商,它允许我调用Max()IQueryable的方法|,但当它抛出一个InvalidCastException,当抛出异常时,我无法当场中断,因此很难查看堆栈跟踪,因为当调试器在我的代码中中断它时,它已经展开。我已经为提到的异常设置了“breakonthrow”。我的调试设置是:澄清我想要打破的确切位置。我不想在LINQ表达式中中断,而是想在执行表达式树时中断,或者换句话说,在执行IQueryable时中断。扩展方法Max()调用LINQ提供程序提供的覆

c# - 编译时在输出窗口中查看所有命令行

我想在输出窗口上构建/发布时查看所有命令。当我构建我的应用程序时,我只会看到这个:------Buildstarted:Project:CemKutuphane,Configuration:DebugAnyCPU------CemKutuphane->D:\Projects\Test\CemKutuphane\CemKutuphane\bin\Debug\CemKutuphane.dll==========Build:1succeededorup-to-date,0failed,0skipped==========这些行中没有csc.exe参数。但是visualstudioide落后于

c# - LINQ to SQL 的编译查询什么时候提高性能

我指的是anarticle它侧重于加速LINQtoSQL查询。它提到的技术之一是“使用编译查询”,并解释了如何使用它。我想看到编译查询的性能改进,因此我尝试了作者提供的相同示例。我使用NorthwindDb作为数据上下文。我尝试了正常执行和编译查询执行,并在LINQPAD上检查了它们。首先,我尝试使用CompileQuery不执行查询。耗时2.065秒。varoo=fromoinOrderswhereo.OrderDetails.Any(p=>p.UnitPrice>100)selecto;oo.Dump("Orderitemswithunitpricemorethan$100");v

C# 编译器无法识别正在实现接口(interface)的类

以下代码无法编译(使用VS2010),我不明白为什么。编译器应该能够推断出List与IEnumerable兼容(抱歉找不到更好的词),但不知何故它没有。我在这里缺少什么?interfaceITest{voidTest();}classTestClass:ITest{publicvoidTest(){}}classProgram{staticvoidTest(IEnumerabletests){foreach(vartintests){Console.WriteLine(t);}}staticvoidMain(string[]args){varlst=newList();Test(lst

c# - 带有变量名歧义的奇怪 C# 编译器问题

让我们看下面的代码:classFoo{stringbar;publicvoidMethod(){if(!String.IsNullOrEmpty(this.bar)){stringbar="Hello";Console.Write(bar);}}}这将编译,一切都很好。但是,现在让我们删除this.前缀:classFoo{stringbar;publicvoidMethod(){if(!String.IsNullOrEmpty(bar))//在这种情况下,我得到一个编译器错误。我同意这是一个错误,但是让我感到困惑的是错误的位置。错误发生在行上:stringbar="Hello";随消息

c# - 为什么 c# 编译器需要在 switch 构造中使用 break 语句?

我很难理解为什么编译器需要使用break语句。不可能错过它,因为现在允许掉落。我看到了C或C++中断的原因,但这里是否需要中断。为什么在案件结束后中断不是内置行为?它不只是没有语义的语法吗?抱歉,如果这是一个愚蠢的问题。编辑:仅当案例为空时才允许掉落。当那里有语句时,你不能省略break语句。所以,这是另一回事。 最佳答案 编译器并不“需要”break语句,它需要它们。这是一个设计决定。它使代码在语义上接近C和C++,同时消除了一直是C语言的一个有争议的“特性”的失败陷阱。 关于c#-为