【C#使用“发布”选项进行编译】教程文章相关的互联网学习教程文章

c# – 为什么编译器不喜欢隐式地转换为uint?【代码】

我在C和C#中遇到了关于uint使用的几个类似的怪癖,现在我想知道推理(对于每个例子可能完全不同).对于这两个示例,请注意我正在编译时将警告级别设置为最大值. (1)gcc抱怨在下面比较int和uint,而vc没有:uint foo = <somevalue>; if( foo == ~0 ) //right here...比较0就可以了,没有在gcc和vc上进行任何转换. (2)在C#3.5中,我遇到了一个类似的问题.以下工作正常:uint foo = 1; uint bar = 2;但这会给出一个uint / int警告:bool con...

c# – 如何在运行时获取WPF元素的维度而不在编译时指定它们【代码】

问题?<UI:PanelBrowser Margin="12,27,12,32"></UI:PanelBrowser>WPF是荒谬的,因为在这种情况下不手动指定属性(例如宽度和高度)会导致它们具有值Doulbe.NaN.问题是我需要知道这个数字.我不打算在XAML中手动设置宽度和高度,因为这会阻止它调整大小. 给定上面的XAML(此对象是Border控件的简单子类),如何在运行时获取Width和Height属性的值? 编辑: 哇,我觉得很荒谬.我读到了ActualWidth和ActualHeight,但他们一直为我返回0和0.原因...

c# – 编译器错误消息:CS0118:’System.Configuration.ConfigurationManager.AppSettings’是’属性’但是像’方法’一样使用【代码】

编译器错误消息:CS0118:’System.Configuration.ConfigurationManager.AppSettings’是’属性’但是像’方法’一样使用<add key="ObjConn" value="Provider=SQLOLEDB;Persist Security Info=True;User ID=OMembers;PWD=OMembers;Initial Catalog=Db;Data Source=""/>strconnection = System.Configuration.ConfigurationManager.AppSettings("ObjConn");sqlcon = new SqlConnection(strconnection);解决方法:在C#中,执行此操作:...

C#:具有相同名称和不同签名的多个函数,但编译器调用错误的函数.怎么解决?【代码】

我有两个功能:partial class Database {public void Insert(string table, params string[] values){string query = "INSERT INTO [{0}] VALUES ('{1}')";ExecuteNonQuery(string.Format(query, table, string.Join("','", values)));}public string Insert(string table, string returnedColumn, params string[] values){string query = "INSERT INTO [{0}] OUTPUT INSERTED.{1} VALUES ('{2}')";return ExecuteScalar(string.F...

c# – 为未使用的用户生成编译器警告的任何方法?

有没有办法在VS2008中为未使用的语句生成警告?我知道有Edit-> Intellisense->组织使用 – >删除未使用的使用,但如果这是编译时警告会很好.解决方法:如果您使用ReSharper,默认情况下,它将以不同的颜色显示未使用的使用(作为错误分析侧栏中的警告),如果您突出显示它们,则可以将它们更改为显示为错误.不幸的是,它不会阻止它编译,但它会提醒你它们没有被使用.

C#中的编译器是否会删除始终为false的条件【代码】

假设我在c#中有以下代码片段static const bool DO_PERFORMANCE_CODE = false;if (DO_PERFORMANCE_CODE) {// performance monitoring code goes here }编译器会删除该代码吗?这是我想要的功能.基本上我想模仿C#中的条件编译,但我想要除Release和Debug之外的更多配置.如果有更好的方法,我会乐于听到它.解决方法:在“debug”中构建时,定义了预处理器变量DEBUG.所以,你可以这样做:public void MyFunc() { //do release stuff #if DEB...

Unix中的免费C#编译器【代码】

我需要在Unix中使用C#语言的免费编译器.有人请指点我或更好,在Mint中使用终端命令安装软件[抱歉我用Unix系统低]?解决方法:试试http://mono-project.com 只需输入终端即可sudo apt-get install mono-devel此外,您可能需要MonoDevelop – 适用于.NET语言的免费IDEsudo apt-get install monodevelop

c# – 编译器能否在字符串上优化ToString()?【代码】

我相信每个人都会遇到喜欢ToString()方法的开发者.我们都可能看到类似以下的代码:public static bool CompareIfAnyMatchesOrHasEmpty(List<string> list1, List<string> list2) {bool result = false;foreach (string item1 in list1){foreach (string item2 in list2){if (item1.ToString() == item2.ToString()){result = true;}if (item1.ToString() == ""){result = true;}}}return result; }我想知道的是,编译器是否可以优化...

c# – 编译器未解析为预期的扩展方法【代码】

我今天注意到在尝试将内联lambda函数转换为闭包时,所以我可以在多个位置使用相同的lambda.这将编译为正确的扩展方法:appBuilder.Use((ctx, next) => {Console.WriteLine("Test");return next(); });该Use是由以下内容定义的扩展:public static IAppBuilder Use(this IAppBuilder app, Func<IOwinContext, Func<Task>, Task> handler);现在,如果我做同样的事情,但将内联移动到变量:Func<IOwinContext, Func<Task>, Task> handler...

c# – 为什么不obj ?? null导致编译器警告【代码】

在引用类型与null合并的情况下,为什么这不是C#编译器中的编译器警告?这有什么意义吗?obj2 = obj ?? null;解决方法:你的例子并不完全有意义,但这样的事情确实如此;d = a ?? b ?? c ?? null;在这里,我说的是取三个的第一个非空值,如果它们都为null,则只取null.

c# – 编译为空的虚拟IEnumerable【代码】

我正在创建一个基类,它有一个名为“GetBaseAddresses()”的虚方法.它具有返回类型IEnumerable< Uri>.如果枚举,基类将不会产生任何结果,但派生类可以选择覆盖该方法并返回任意数量的项目. 这是基本方法:public virtual IEnumerable<Uri> GetBaseAddresses() { }问题是,这将无法编译.您必须为编译器返回一个值才能满意.所以,因为我想得到一个空结果,我只会返回null,对吧?public virtual IEnumerable<Uri> GetBaseAddresses() { ret...

c# – 同一程序集中的自引用类或循环引用类如何成功编译【代码】

我想知道C#和.Net编译器如何能够在同一个程序集中成功编译自引用类或循环引用类. 请考虑以下代码存在于同一程序集中.class X{ X x; } class Y{ Z z; } class Z{ Y y; }当然,这段代码编译成功.但是怎么样?我想知道编译器是如何在这些情况下第一次解析类的.例如,当编译器遇到类Y时,它还不知道类Z.如何在Y类中解析子属性z?请解释编译代码时后台究竟发生了什么.可能是关于编译器如何解析类和类型的一些合适的文章解决方法:正如this文...

c# – 使用.NET Core定位多个框架的编译器指令【代码】

我的代码中有一个针对.NET Core和net45的库,我需要使用这样的反射:var type = obj.GetType(); var properties = type.GetProperties().ToList();if (type.IsPrimitive || type.IsEnum || properties.Count == 0)return new Dictionary<string, object> { { unnamed, obj } };现在我移植我的库也支持.net核心所以我创建了一个新的.net核心库项目,这是我的project.json{"version": "1.0.0","dependencies": {"Wen.Logging.Abstracti...

c# – Roslyn / CSharpScript – 如何保存/加载编译以避免编译等待时间【代码】

我正在尝试将c#脚本集成到我的数据库应用程序中.我正在使用globals对象来从脚本中访问全局变量. 如果第一次编译脚本,我对等待时间不满意.如何保存和加载编译以避免等待时间?Script<object> script = CSharpScript.Create(scriptCode, globalsType: typeof(MyGlobals)); script.Compile(); //<-- load the Compilation from database/file here script.RunAsync(myGlobalsInstance).Wait();解决方法:您可以创建CSharpScript,然后...

基于PER-FILE的C#编译器常量?【代码】

是否可以在PER-FILE /项目项基础上定义编译器常量? 背景:我想实现一个数据库抽象层(DAL),它将所有读取和写入任务分开,但是保留一个可以同时执行这两个操作的DAL,但是没有多次实现相同的方法(抽象类意味着每个都有1个实例类)支持的数据库类型). 所以我想像这样分开我的DAL:abstract class ReadDAL abstract class WriteDAL abstract class ReadWriteDAL (multiple-inheritance from Read&Write-DAL).不幸的是,这不起作用,因为C#不...