小编B. *_*non的帖子

为什么RichTextBox的Font.Size属性在设计时可编辑,但在编译时只读?

这段代码:

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'无法分配给 - 它是只读的"

UPDATE

在尝试建议的修复后,我在运行时得到它:

System.FormatException未处理Message =输入字符串格式不正确.Source = mscorlib StackTrace:at System.Number.StringToNumber(String str,...

好吧,我明白了:我使用的是Convert.ToInt32(),但是comboBox中的第一个值是"8.25" - 显然,这不是一个int.

所以我尝试了Convert.ToDouble(),这将无法编译.

然后我在intellisense中看到"调用此方法总是抛出'System.InvalidCastException'"*

  • 以及Convert.ToSingle()

那么我必须将组合框的值从8.25更改为8吗?8.25是默认值...... ???

再次更新

我在周末阅读(在Petzold的WP7书中,我认为)8.25对应于11.因此,我认为这里提到的8.25是像素,对应于11的字体大小,现在更有意义了(虽然仍然过于误导/混淆).

c# fonts richtextbox font-size winforms

-2
推荐指数
1
解决办法
1029
查看次数

什么是更简洁的计算偏移量的方法?

这段代码:

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)

c# arrays algorithm refactoring

-2
推荐指数
1
解决办法
91
查看次数

仅当最后一个函数调用为false或者其中任何函数是否为false时,此代码是否返回false?

我遇到了这个遗留代码:

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(这就是我的意思期待代码乍一看,但这没有意义).

c#

-2
推荐指数
1
解决办法
90
查看次数

为什么尝试逐字逐句地失败?

我有这个子字符串我想从字符串中删除:

<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)

......但如果它没有动词,那么逐字使用是什么用途?

c# quotes escaping verbatim-string

-2
推荐指数
1
解决办法
54
查看次数

为什么我的LINQ查询无法识别通用列表的成员?

我试图查询(通过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)

c# linq generics class generic-list

-2
推荐指数
1
解决办法
277
查看次数

我怎样才能看到森林里的树木?

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新手怎么知道(当他试图重新编写自己的代码时)哪些问题是真正的问题,哪些是非问题?

html c# resharper refactoring asp.net-mvc-3

-3
推荐指数
1
解决办法
111
查看次数

为什么这个实现方法看不到它的兄弟?

我有一个实现接口的类:

public class SQLiteHHSDBUtils : IHHSDBUtils
{

    void IHHSDBUtils.SetupDB()
    {
            . . .
            if (!TableExists("AppSettings"))

    . . .

    bool IHHSDBUtils.TableExists(string tableName)
    {
    . . .
Run Code Online (Sandbox Code Playgroud)

它找不到自己的兄弟坐在它下面(if (!TableExists()):

"TableExists"这个名称在当前上下文中不存在

它怎么样/为什么它看不到它?

c# interface interface-implementation

-3
推荐指数
1
解决办法
73
查看次数

如何根据两个条件从通用列表中获取项目?

我有一个自定义类型的通用列表,我试图找回一个类型的实例.我已尝试使用两个条件"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)

c# generics lambda generic-list

-3
推荐指数
1
解决办法
56
查看次数

Why is my jQuery button handler not being fired?

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)

javascript ajax rest jquery

-3
推荐指数
1
解决办法
2762
查看次数

为什么此SqlCeCommand ExecuteReader调用失败?

我在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

-4
推荐指数
1
解决办法
533
查看次数

从日期的日期部分中删除前导0的最简洁方法是什么?

我有这个代码,在关于框中显示一些构建信息:

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)

c# datetime text-parsing date-math date-manipulation

-4
推荐指数
1
解决办法
56
查看次数

为什么我用这段代码得到0.0?

当我输入时,在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?

c# math percentage

-4
推荐指数
1
解决办法
82
查看次数

当返回值可能未被分配时,为什么会编译?

在我看来,这段代码:

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# exception control-flow

-5
推荐指数
1
解决办法
141
查看次数