我的项目没有错误,我可以通过F5运行它,但我无法查看我的"主"表单,因为[设计]选项卡告诉我,"为了防止在加载设计器之前可能的数据丢失,必须解决以下错误:类名"?"不是此语言的有效标识符."
但是包含该描述的错误列表表明它位于第0行和第0列.
建立| 清洁解决方案没有帮助.
[Design]页面中的Call Stack是:
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.CodeTypeDeclarationFromCodeClass(CodeClass vsClass)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.OnNamespacePopulateTypes(Object sender, EventArgs e)
at System.CodeDom.CodeNamespace.get_Types()
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.Parse(TextReader codeStream)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.MergedCodeDomParser.System.CodeDom.Compiler.ICodeParser.Parse(TextReader stream)
at System.CodeDom.Compiler.CodeDomProvider.Parse(TextReader codeStream)
at Microsoft.VisualStudio.Shell.Design.Serialization.CodeDom.CodeDomDocDataAdapter.get_CompileUnit()
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
at System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host)
Run Code Online (Sandbox Code Playgroud)
关闭VS2010并重新启动解决了它.
这里:http://msdn.microsoft.com/query/dev10.query?appId = Dev10IDEF1&l = EN-US&k = k(WHYDTELPAGE)%3bk(TargetFrameworkMoniker-%22.NETFRAMEWORK%2cVERSION%3DdV4.0%22)&rd =真正
我找到了一些建议,包括这个建议(但我不需要尝试它,因为在回来工作之前让VS进入它的房间一两分钟):
"删除包含前一个会话中的设计器布局信息的[solutionname] .suo文件,然后启动项目并重建.."
我正在尝试使用子项目工作的Listview获得最简单的示例.但是这段代码:
private void button1_Click(object sender, EventArgs e) {
listView1.Groups.Add(new ListViewGroup("Kannst du mich sehen?", HorizontalAlignment.Left));
string[] strArr = new string[4] { "uno", "dos", "twa", "quad" };
for (int i = 0; i < strArr.Length; i++)
{
ListViewItem lvi = new ListViewItem(strArr[i]);
listView1.Items.Add(lvi);
lvi.SubItems.Add("Ciao, Baby!");
listView1.Items[i].Group = listView1.Groups[0];
}
}
Run Code Online (Sandbox Code Playgroud)
...不显示子项("Ciao,Baby!").表明:
Kannst du mich sehen?
---------------------
uno dos twa quad
Run Code Online (Sandbox Code Playgroud)
......但我希望它是:
Kannst du mich sehen?
---------------------
uno Ciao, Baby!
dos Ciao, Baby!
twa Ciao, Baby!
quad Ciao, Baby!
Run Code Online (Sandbox Code Playgroud)
更奇怪的是(在我看来),我明白了:
Default
-------
uno …Run Code Online (Sandbox Code Playgroud) 使用以下代码:
if (lombardiTrophy.Substring(1, 1).Equals('~'))
Run Code Online (Sandbox Code Playgroud)
......我明白了," 可疑的比较:解决方案中没有从'string'和'char'继承的类型 "
有没有更好的方法来做到这一点,不会导致Resharper提出其骚扰?
我有一些冗长的代码:
private bool AnyUnselectedCombox()
{
bool anyUnselected = false;
foreach (Control c in this.Controls)
{
if (c is ComboBox)
{
if ((c as ComboBox).SelectedIndex == -1)
{
anyUnselected = true;
break;
}
}
}
return anyUnselected;
}
Run Code Online (Sandbox Code Playgroud)
...... Resharper提供了一个像这样的LINQ表达式的elegantize:
return this.Controls.OfType<ComboBox>().Any(c => (c as ComboBox).SelectedIndex == -1);
Run Code Online (Sandbox Code Playgroud)
...但随后的Resharper检查说明了它生成的代码(上图):"类型转换是多余的"(指"c作为ComboBox"部分),因此它最终为:
return this.Controls.OfType<ComboBox>().Any(c => c.SelectedIndex == -1);
Run Code Online (Sandbox Code Playgroud)
Resharper不应该生成Resharper批准的代码吗?或者它有时需要两次通过才能完全"束紧腰部"?
Resharper希望我改变这段代码:
foreach (var item in cmbxColor1.Items)
{
cmbxColor2.Items.Add(item);
. . .
Run Code Online (Sandbox Code Playgroud)
...因为它说,"可能'System.NullReferencesException'"
所以它应该是这样的:
foreach (var item in cmbxColor1.Items)
{
if (null != cmbxColor2.Items)
{
cmbxColor2.Items.Add(item);
. . .
Run Code Online (Sandbox Code Playgroud)
?
我不明白 - 除非null ==空,组合框的项目怎么可能为null?如果null ==为空,那么这就是他们[s,w]调用此代码时应该是什么.
我在一本书中遇到了这行代码:
var data = db.Query(sql).OrderByDescending(c => c.DatePosted);
Run Code Online (Sandbox Code Playgroud)
这种事情似乎跟我追尾......
为什么有c => c.必要?以下是不可理解的(编译器,人类更是如此)?
var data = db.Query(sql).OrderByDescending(DatePosted);
Run Code Online (Sandbox Code Playgroud)
我确信在幕后发生了各种奇特的事情,据称需要这种奇怪的lambda语法,但同样:
为什么?真的有必要吗?编译器不能弄清楚DatePosted是要排序的列吗?
根据文章" ASP.NET MVC5中的新功能 ",您必须将此添加到RegisterRoutes()方法才能使用属性路由:
routes.MapMvcAttributeRoutes();
Run Code Online (Sandbox Code Playgroud)
...所以现在的方法是:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Run Code Online (Sandbox Code Playgroud)
我没有那个额外的/中间调用,我的属性路由一直在工作.
那么,如果有的话,为我做什么呢?
c# asp.net-web-api attributerouting asp.net-web-api-routing asp.net-mvc-5
我收到十几个“无效的 Resx 文件。ResX 输入无效。无法找到 ResX 读取器和写入器类型名称的有效“resheader”标签。” 尝试编译时出现错误消息。
我以前遇到过这个问题,如下所示。
但这一次,它的表现略有不同。
首先,这是我所做的:我在项目中的几个文件上选择了上下文菜单项“撤消挂起的更改”。对于他们每个人来说,其相关的 *.resx 文件显然已损坏。
2 单击错误列表中的第一个 err 消息会将我带到 .resx 文件中:
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
Run Code Online (Sandbox Code Playgroud)
2-单击下一个错误将我带到 .resx 文件中的此处:
<resheader name="resmimetype">text/microsoft-resx</resheader>
Run Code Online (Sandbox Code Playgroud)
这是注释掉的解释部分;在一些上下文中:
<!--
Microsoft ResX Schema
Version 1.3
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema …Run Code Online (Sandbox Code Playgroud) 使用此代码:
bool dataToAdd;
if (null == _priceComplianceDetailList) return dataToAdd;
Run Code Online (Sandbox Code Playgroud)
我收到编译错误," 使用未分配的局部变量'dataToAdd' "
所以我不得不明确地给布尔分配"假":
bool dataToAdd = false;
if (null == _priceComplianceDetailList) return dataToAdd;
Run Code Online (Sandbox Code Playgroud)
在上下文中:
private bool PopulateSheetWithDetailData()
{
bool dataToAdd = false;
if (null == _priceComplianceDetailList) return dataToAdd;
List<PriceComplianceDetail> _sortedDetailList =
. . .
return _sortedDetailList.Count > 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么有必要?bool的默认值是否为false?
我有这个代码试图打开一个.json文件并阅读它:
[Route("{unit}/{begindate}")]
public string Get(string unit, string begindate)
{
string _unit = unit;
string _begindate = String.Format("{0}01", PlatypusWebReportsConstsAndUtils.HyphenizeYYYYMM(begindate));
string appDataFolder = HttpContext.Current.Server.MapPath("~/App_Data/");
// semi-hardcoded file name for now
string jsonFilename = string.Format("PoisonToe_{0}_{1}.json", _unit, _begindate);
string fullPath = Path.Combine(appDataFolder, jsonFilename);
JObject platypusComplianceJson = JObject.Parse(File.ReadAllText(fullPath));
. . .
Run Code Online (Sandbox Code Playgroud)
在最后一行,我得到:
Newtonsoft.Json.JsonReaderException未被用户代码处理HResult = -2146233088 Message =从JsonReader读取JObject时出错.当前的JsonReader项不是对象:
根据我在这里读到的内容,我认为这是实现它的方法.我究竟做错了什么?
c# ×9
winforms ×4
resharper ×3
refactoring ×2
.net ×1
boolean ×1
combobox ×1
default ×1
json.net ×1
lambda ×1
listview ×1
listviewitem ×1
null ×1
resx ×1
whitespace ×1