这段代码:
private void comboBoxFontSize_SelectedIndexChanged(object sender, EventArgs e) {
rtbResults.Font.Size = Convert.ToInt32(comboBoxFontSize.SelectedItem);
}
Run Code Online (Sandbox Code Playgroud)
...生成此错误消息:"属性或索引器'System.Drawing.Font.Size'无法分配给 - 它是只读的"
在尝试建议的修复后,我在运行时得到它:
System.FormatException未处理Message =输入字符串格式不正确.Source = mscorlib StackTrace:at System.Number.StringToNumber(String str,...
好吧,我明白了:我使用的是Convert.ToInt32(),但是comboBox中的第一个值是"8.25" - 显然,这不是一个int.
所以我尝试了Convert.ToDouble(),这将无法编译.
然后我在intellisense中看到"调用此方法总是抛出'System.InvalidCastException'"*
那么我必须将组合框的值从8.25更改为8吗?8.25是默认值...... ???
我在周末阅读(在Petzold的WP7书中,我认为)8.25对应于11.因此,我认为这里提到的8.25是像素,对应于11的字体大小,现在更有意义了(虽然仍然过于误导/混淆).
这段代码:
private int GetColumnToPopulate(int columnBase, int offset) {
int duckbillColNum = 0;
switch (columnBase) {
case 0:
duckbillColNum = 1;
break;
case 1:
duckbillColNum = 5;
break;
case 2:
duckbillColNum = 9;
break;
case 3:
duckbillColNum = 13;
break;
case 4:
duckbillColNum = 17;
break;
case 5:
duckbillColNum = 21;
break;
case 6:
duckbillColNum = 25;
break;
case 7:
duckbillColNum = 29;
break;
}
duckbillColNum += offset;
return duckbillColNum;
}
Run Code Online (Sandbox Code Playgroud)
...很容易理解,但是冗长而笨重.我想精简它.我的伪代码是这样的:
int[] colBases
{
0..7
}
int[] offsets
{
1,5,9,13,17,21,25,29 …Run Code Online (Sandbox Code Playgroud) 我遇到了这个遗留代码:
public static bool RemoveTempFiles()
{
bool RetVal = true;
RetVal &= RemoveFile(@"\", "*.csv");
RetVal &= RemoveFile(@"\", "*.xml");
RetVal &= RemoveFile(@"\", "*.txt");
RetVal &= RemoveFile(@"\", "*.tmp");
RetVal &= RemoveFile(GetDataPath(), "*.csv");
RetVal &= RemoveFile(GetDataPath(), "*.xml");
RetVal &= RemoveFile(GetDataPath(), "*.txt");
RetVal &= RemoveFile(GetDataPath(), "*.tmp");
return RetVal;
}
Run Code Online (Sandbox Code Playgroud)
...而且我不熟悉"&="运算符.
RemoveFile()删除所有提供扩展名的文件,除非遇到异常,否则返回true.
因为我不知道"&="我不知道是否有任何失败导致RemoveTempFiles()返回false或者如果最后一个(对于*.tmp文件)失败,它只会返回false(这就是我的意思期待代码乍一看,但这没有意义).
我有这个子字符串我想从字符串中删除:
<ArrayOfSiteQuery xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.datacontract.org/2004/07/CStore.DomainModels.HHS">
Run Code Online (Sandbox Code Playgroud)
意识到它充满了愚蠢,我认为逐字逐句可以解决所有弊病:
String messedUpJunk = @"<ArrayOfSiteQuery xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.datacontract.org/2004/07/CStore.DomainModels.HHS">";
Run Code Online (Sandbox Code Playgroud)
...但是,在Lost In Space中解释机器人,不计算(编译); 我得到," ;预期 "在第一个"http".
我可以通过转义引号来获得它:
String messedUpJunk = "<ArrayOfSiteQuery xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.datacontract.org/2004/07/CStore.DomainModels.HHS\">";
Run Code Online (Sandbox Code Playgroud)
......但如果它没有动词,那么逐字使用是什么用途?
我试图查询(通过LINQ)一个通用列表,它正在"行动",好像我"在哪里"的某些字段不存在.
这是代码:
private decimal GetPriceForMember_Code_Desc_Unit_Week(string member, string itemcode, string desc, string unit, int weeknum)
{
Decimal price = 0.00M;
if (unit == CRAFTWORKS_SC)
{
price = craftworksWeek1PVDSubsetList.Select(x => x.Price)
.Where(x => x.ShortName.Equals(member))
.Where(x => x.Description.Equals(desc))
.Where(x => x.WeekNum.Equals(weeknum))
.Where(x => x.ItemCode.Equals(itemcode));
}
//else if (unit == CHOPHOUSE) TODO: Finish
return price;
}
Run Code Online (Sandbox Code Playgroud)
它失败了," 'string'不包含'ShortName'的定义,并且没有扩展方法'ShortName'接受类型'string'的第一个参数可以找到(你是否缺少using指令或汇编引用?) "
我的LINQ语法显然有问题,但我不知道是什么.代码中的泛型列表定义和声明如下:
public class PriceVarianceSubsetData
{
public String ShortName { get; set; }
public String ItemCode { get; set; }
public String Description { get; set; …Run Code Online (Sandbox Code Playgroud) Resharper发现1,953个问题与处女的asp.net MVC 3互联网应用程序(我甚至没有触摸代码 - 只看了它):
Common Practices and Code Improvements: 1024 issues
Constraints Violations: 150 issues
Potential Code Quality Issues: 252
Redundancies in Code: 77 issues
Redundancies in Symbol Declarations: 450 issues
Run Code Online (Sandbox Code Playgroud)
一个asp.net新手怎么知道(当他试图重新编写自己的代码时)哪些问题是真正的问题,哪些是非问题?
我有一个实现接口的类:
public class SQLiteHHSDBUtils : IHHSDBUtils
{
void IHHSDBUtils.SetupDB()
{
. . .
if (!TableExists("AppSettings"))
. . .
bool IHHSDBUtils.TableExists(string tableName)
{
. . .
Run Code Online (Sandbox Code Playgroud)
它找不到自己的兄弟坐在它下面(if (!TableExists()):
"TableExists"这个名称在当前上下文中不存在
它怎么样/为什么它看不到它?
我有一个自定义类型的通用列表,我试图找回一个类型的实例.我已尝试使用两个条件"FirstOrDefault"和"Where",但两个条件都给我相同的错误信息("运算符'&&'不能应用于'lambda表达式'的操作数'和'lambda表达'")
他们来了:
// FirstOrDefault
UnitItemCodeItemID uicii =
unitItemCodeItemIDList
.FirstOrDefault((u => u.Unit == _unit) && (d => d.Description == desc));
// Where
UnitItemCodeItemID uicii =
unitItemCodeItemIDList
.Where((u => u.Unit == _unit) && (d => d.Description == desc));
Run Code Online (Sandbox Code Playgroud)
我不知道它是否相关,但课程是:
public class UnitItemCodeItemID
{
public string Unit { get; set; }
public string Description { get; set; }
public string ItemCode { get; set; }
public int ItemID { get; set; }
}
Run Code Online (Sandbox Code Playgroud) I have this jQuery to respond to a button being clicked and call a REST method:
$(document).ready(function() {
$("#btnGetData").click(function() {
alert("The button was clicked.");
var unitval = _unit;
var begdateval = _beginDate;
var enddateval = _endDate;
var model = JSON.stringify({ unit: unitval, begdate: begdateval, enddate: enddateval });
$.ajax({
type: 'GET',
url: '@Url.Action("GetQuadrantData", "LandingPage")',
data: { unit: unitval, begdate: begdateval, enddate: enddateval},
contentType: 'application/json',
cache: false,
success: function (returneddata) {
},
error: function () {
alert('hey, boo-boo!');
}
});
}); // …Run Code Online (Sandbox Code Playgroud) 我在Wigley和Wheelwright的"Microsoft .NET Compact Framework"中修改了下面的代码:
SqlCeConnection cn = new SqlCeConnection(@"Data Source=\My Documents\Traffic.sdf");
String sSQL= "SELECT CarID, Reg, Location FROM Cars");
SqlCeCommand cmdSelect = new SqlCeCommand(sSQL, cn);
cmdSelect.CommandType = CommandType.Text;
SqlCeDataReader dtr = cmdSelect.ExecuteReader(CommandBehavior.Default); // It's "cmd." instead of "cmdSelect." in the book, but that doesn't compile
while (dtr.Read())
{
ListViewItem item = new ListViewItem(dtr.GetInt32(0).ToString());
item.SubItems.Add(dtr.GetString(1));
item.SubItems.Add(dtr.GetString(2));
listViewCars.Items.Add(item);
}
Run Code Online (Sandbox Code Playgroud)
...所以我的代码是这样的:
private String getDataAsXMLFromTable(String tableName, String siteNum)
{
String strXML;
StringBuilder sbXML = new StringBuilder();
String lineId;
String refNum;
String upcCode;
String desc; …Run Code Online (Sandbox Code Playgroud) compact-framework executereader windows-ce sql-server-ce sqlcedatareader
我有这个代码,在关于框中显示一些构建信息:
private void frmAbout_Load(object sender, EventArgs e)
{
Version versionInfo =
Assembly.GetExecutingAssembly().GetName().Version;
lblVersion.Text = String.Format("Version {0}.{1}",
versionInfo.Major.ToString(), versionInfo.Minor.ToString());
String versionStr = String.Format("{0}.{1}.{2}.{3}",
versionInfo.Major.ToString(), versionInfo.Minor.ToString(),
versionInfo.Build.ToString(), versionInfo.Revision.ToString());
lblBuild.Text = String.Format("Build {0}", versionStr);
DateTime startDate = new DateTime(2000, 1, 1); // The date from
whence the Build number is incremented (each day, not each
build; see http://stackoverflow.com/questions/27557023/how-can-
i-get-the-build-number-of-a-visual-studio-project-to-increment)
int diffDays = versionInfo.Build;
DateTime computedDate = startDate.AddDays(diffDays);
lblLastBuilt.Text += computedDate.ToLongDateString();
}
Run Code Online (Sandbox Code Playgroud)
今天看起来像这样:

"问题"是屏幕房地产有限,而"2015年2月4日"等日期对我来说看起来很怪异(我更喜欢"2015年2月4日").
我可以像这样强行从ToLongDateString()返回的字符串强制执行:
String lds = computedDate.ToLongDateString();
lds = // find leading …Run Code Online (Sandbox Code Playgroud) 当我输入时,在Windows计算器实用程序中,"15036/18218*100 ="它返回82.53375782193435
我真正想要的是17.47(100 - 82.53),但那是目前的重点.
使用此代码:
// Example: thisQty == 3182; totalQty == 18218
private string GetPercentage(int thisQty, int totalQty)
{
int diff = totalQty - thisQty; // this equates to 15036
double prcntg = (diff/totalQty)*100; // this equates to 0.0 for some reason
return string.Format("{0}%", prcntg);
}
Run Code Online (Sandbox Code Playgroud)
...我的prcntg值为0.0.为什么?ISTM,这与我在Calculator实用程序中手动执行的操作相同.为什么不返回82.53375782193435?
在我看来,这段代码:
public static bool InsertInventoryItem(DuckbillUtils.InventoryItem invItem)
{
bool addSuccess = true;
try
{
InventoryItemsList invItems = new InventoryItemsList();
invItems.inventoryItems.Add(invItem);
}
catch (Exception)
{
addSuccess = false;
}
return addSuccess;
}
Run Code Online (Sandbox Code Playgroud)
...不应该编译,因为不能保证将到达返回行 - 如果有异常,则分配addSuccess,但不会从catch块中返回该方法,并且不会到达最后一行,在这种情况下,该方法没有返回任何内容?
c# ×11
generic-list ×2
generics ×2
refactoring ×2
ajax ×1
algorithm ×1
arrays ×1
class ×1
control-flow ×1
date-math ×1
datetime ×1
escaping ×1
exception ×1
font-size ×1
fonts ×1
html ×1
interface ×1
javascript ×1
jquery ×1
lambda ×1
linq ×1
math ×1
percentage ×1
quotes ×1
resharper ×1
rest ×1
richtextbox ×1
text-parsing ×1
windows-ce ×1
winforms ×1