Tag: compiler errors

命名空间错误中不存在类型资源

有另一个问题。 我几乎完成了我的项目,但感觉我必须更改项目的命名空间。 但是我没有使用重构 – >重命名,而是选择了我的命名空间,编辑 – >查找和替换并用不同的命名空间替换了我的整个解决方案(因此解决方案中的所有地方,例如命名空间或文本“name1”都存在,是现在变成了“name2”)。 但是现在我得到大约16个错误都说同样的事情:“命名空间name1中不存在类型或命名空间”资源“。 this.centerPanel.BackgroundImage = global::login_DragDrop.Properties.Resources.oeftest; 那么例如在这行代码中(主要在designer.cs中)资源是红色的? 关于如何解决这个问题的任何提示?

为什么C#6.0在使用Null传播运算符时不允许设置非null可空结构的属性?

假设我们有以下代码: struct Article { public string Prop1 { get; set; } } Article? art = new Article(); art?.Prop1 = “Hi”; // compile-error 编译错误是 CS0131赋值的左侧必须是变量,属性或索引器。 art?.Prop1是一个属性,应该被认为是一个有效的任务! 我没有看到任何分配使这段代码无效的问题。 为什么C#6.0不允许设置非null可空结构的属性? 或者,任何建议一个行代码使分配有效将不胜感激。

‘Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync()’无法正常工作

我有以下代码,在应用程序中显示文件选择器: var FilePicker = new Windows.Storage.Pickers.FileOpenPicker(); FilePicker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail; FilePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.ComputerFolder; FilePicker.FileTypeFilter.Add(“.pcs”); FilePicker.FileTypeFilter.Add(“.pcp”); Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync(); 但是, Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync()会在编译期间导致此错误: 错误CS4036’IAsyncOperation ‘不包含’GetAwaiter’的定义,并且找不到扩展方法’GetAwaiter’接受类型为’IAsyncOperation ‘的第一个参数(您是否缺少’System’的using指令?) 为什么会这样? 我从MSDN获得了代码。 有人可以帮帮我吗? 注意:我正在为通用Windows编程。

Visual Studio无法写入输出文件’… \ _ \ netj \ Debug \ Foo.Bar.dll“

我在Visual Studio 2010中编译一个大的c#解决方案时遇到了这个错误。每次编译后我都要删除此解决方案使用的项目之一的obj文件夹。 否则我收到以下错误: Could not write to output file ‘…\obj\Debug\Foo.Bar.dll’ The process cannot access the file because it is being used by another process 我一直在寻找互联网上的解决方案,实际上发现/尝试了一些解决方案。 例如:很多开发论坛的人都建议在UserControl (在其他一些来源中)设计器打开时不要开始编译。 其他一些人使用预构建脚本来删除obj文件夹,这个特殊的解决方案是可以接受的,但如果发布的项目是一个广泛使用的库,它的重新编译将导致重新编译“父”项目。

运算符重载==,!=,等于

我已经经历了一个问题 据我所知,有必要实现== , !=和Equals() 。 public class BOX { double height, length, breadth; // this is first one ‘==’ public static bool operator== (BOX obj1, BOX obj2) { return (obj1.length == obj2.length && obj1.breadth == obj2.breadth && obj1.height == obj2.height); } // this is second one ‘!=’ public static bool operator!= (BOX obj1, BOX obj2) […]

为什么我不能声明从字节inheritance的枚举但我可以从字节?

如果我宣布这样的枚举…… public enum MyEnum : byte { Val1, Val2 } ……它正在发挥作用。 如果我宣布这样的枚举…… public enum MyEnum : System.Byte { Val1, Val2 } ……它不起作用。 编译抛出: 错误CS1008:输入byte,sbyte,short,ushort,int,uint,long或ulong 由于byte是实际类型的别名, System.Byte ,为什么我不能使用第二个声明?

C#编译错误:“由于其保护级别,X无法访问”

当c#给出这个编译错误? 由于其保护等级,’Favorite.Favorites.FavoriteCollection’无法进入 private void Form1_Load(object sender, EventArgs e) { Favorites objFavorites = new Favorites(); objFavorites.ScanFavorites(); foreach (WebFavorite objWebFavorite in objFavorites.FavoriteCollection) { ListViewItem objListViewItem = new ListViewItem(); objListViewItem.Text = objWebFavorite.Name; objListViewItem.SubItems.Add(objWebFavorite.Url); lstFavorites.Items.Add(objListViewItem); } }

.NET编译器和“并非所有代码路径返回值”

为什么在如下代码中.NET编译器无法确定所有代码路径都返回值? bool Test(bool param) { bool test = true; if (param) test = false; else test = false; if (!test) return false; } 错误CS0161:并非所有代码路径都返回值! 代码可以重构 – 但编译器不建议这样做。 然而,所有返回路径都被覆盖 – 那么为什么编译器会抱怨它们不是? 编辑:我想这里的结论是: (error CS0161) + (all code paths obviously return a value) => refactor code. 一旦你养成了翻译的习惯,我猜一切都还可以。

奇怪的(可能是错的?)C#编译器行为与方法重载和枚举

今天我发现了一个非常奇怪的C#函数重载行为。 当我有一个方法有2个重载,一个接受对象,另一个接受任何类型的枚举时,会出现问题。 当我将0作为参数传递时,将调用该方法的Enum版本。 当我使用任何其他整数值时,将调用Object版本。 我知道这可以通过使用显式转换来轻松修复,但我想知道为什么编译器会以这种方式运行。 这是一个错误还是我不知道的一些奇怪的语言规则? 下面的代码解释了问题(使用运行时2.0.50727检查) 感谢您对此的任何帮助,Grzegorz Kyc class Program { enum Bar { Value1, Value2, Value3 } static void Main(string[] args) { Foo(0); Foo(1); Console.ReadLine(); } static void Foo(object a) { Console.WriteLine(“object”); } static void Foo(Bar a) { Console.WriteLine(“enum”); } }

编译器错误“不允许使用默认参数说明符”

以下是我的代码。 public class PItem { public String content; public int count; public int fee; public int amount; public string description; // Default values public PItem(String _content = “”, int _count = 0, int _fee = 0, string _description = “”, int _amount = 0) { content = _content; count = _count < 0 ? 0 […]