小编B. *_*non的帖子

为什么我可以安全地转换为int而不是转换为int?

为什么这样做:

ComboBox cb = sender as ComboBox;
int validSelection = Convert.ToInt32(cb.Tag);
if (cb.SelectedIndex != validSelection) {
    cb.SelectedIndex = validSelection;
}
Run Code Online (Sandbox Code Playgroud)

...但是这个:

ComboBox cb = sender as ComboBox;
int validSelection = (int)cb.Tag; // <-- fails
if (cb.SelectedIndex != validSelection) {
    cb.SelectedIndex = validSelection;
}
Run Code Online (Sandbox Code Playgroud)

...错误输出"对象未设置为对象的引用"?

c# int casting winforms

3
推荐指数
2
解决办法
383
查看次数

如何可视化各种DateTime格式的显示方式?

我希望能够快速参考各种DateTime格式的显示方式,而不是开始编辑,编译,gawk和recurse的繁重过程,直到满意为止.

c# formatting datetime datetime-format winforms

3
推荐指数
2
解决办法
9263
查看次数

试图通过从日期中减去日期来获得int

使用此代码:

public static bool PlatypusIsAFornightOrLessOld(int PlatypusID) {
const int FORTNIGHT = 14;
const string sql = @"SELECT PLATYPUSBIRTHDATE
            FROM PLATYPI 
            WHERE PLATYPUSID = :PLATYPUSID";
DateTime dt;
try {
    using (var ocmd = new OracleCommand(sql, oc)) {
        ocmd.Parameters.Add("PLATYPUSID", PlatypusID);
        dt = Convert.ToDateTime(ocmd.ExecuteScalar());
    }
    return (DateTime.Today - dt) <= FORTNIGHT;
} catch (Exception e) {
. . .
Run Code Online (Sandbox Code Playgroud)

我得到:"运算符'<='不能应用于"返回"行上'System.TimeSpan'和'int'类型的操作数.

c# datetime date

3
推荐指数
2
解决办法
281
查看次数

如何将VerticalAlignment设置为范围的底部?

using Microsoft.Office.Interop.Excel;
Range rng = worksheet.UsedRange;
Run Code Online (Sandbox Code Playgroud)

//我发现下面的代码,但我没有找到引用ExcelAlignemt和excel我错过了一些需要这样的ref

rng.VerticalAlignment = ExcelAlignment.xlButtom; //or Excel.XlHAlign.xlHAlignLeft
Run Code Online (Sandbox Code Playgroud)

c# excel

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

为什么10亿*100 = 12亿?

我有代码将单元格的默认值设置为上面的单元格的值乘以100:

const int DUCKBILL_MULTIPLIER = 100;
. . .
cellValue = dataGridViewPlatypi.Rows[args.RowIndex - 1].Cells[0].Value;
if (Convert.ToInt32(cellValue) > 0)
{
    int nextDefaultVal = Convert.ToInt32(cellValue) * DUCKBILL_MULTIPLIER;
    cellValue = nextDefaultVal;
}
prevVal = cellValue == null ? string.Empty : cellValue.ToString();
. . .
dataGridViewPlatypi.Rows[args.RowIndex].Cells[args.ColumnIndex].Value = prevVal;
Run Code Online (Sandbox Code Playgroud)

但是,一旦上述值达到10亿(10亿),下一个值就是1215752192(1,215,752,192或大约12亿),而不是1000亿.

据我所知,max int值是2,147,483,647(约21亿); 那么为什么下一个值为1,215,752,192而不是2,147,483,647?

顺便说一下,这些val比应用程序需要的要大,但我在测试"极端"情况时发现了这个.

c# math

3
推荐指数
2
解决办法
928
查看次数

安装VS Ultimate后卸载VS Express是否安全?

几天前,我安装了Visual Studio Express for C#; 昨天我安装了Visual Studio Ultimate.由于我将不再使用前者,卸载它是否安全?

installation uninstall visual-studio-express visual-studio

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

当我使用StringBuilder.Append而不是.AppendLine时,我是否需要添加额外的.Append(crlf)s?

我正在调整我在这里找到的一些代码:http://nicholas.piasecki.name/blog/2009/03/sending-raw-epl2-directly-to-a-zebra-lp2844-via-c/#comment-1636,但在VS 2003/.NET 1.1中,StringBuilder的AppendLine方法无法识别,因此我将其截断为.Append.

现在我需要在每次调用Append之后添加#13#10左右 - 我假设这是AppendLine自动执行的操作.

.net c# stringbuilder append visual-studio

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

这种双重瞬间有害,还是根本不必要?

在仔细阅读遗留源代码时,我发现了这一点:

DataSet myUPC = new DataSet();
myUPC = dbconn.getDataSet(dynSQL);
Run Code Online (Sandbox Code Playgroud)

Resharper正确地"灰化"其中的"新数据集()"部分,并建议"删除冗余的初始化器",但它是否像那样无害?编译器是否只是在第二次赋值之前处理第一个实例?IOW,第一个任务是不必要的,还是有潜在危害?

c# resharper refactoring garbage-collection

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

为什么这个多余的逗号会编译?

在查看一些遗留代码时,我遇到了这个枚举:

    public enum cmdResults 
    {
        cmdNotFound = 0,    
        cmdFound    = 1,    
        cmdExit     = 2,    
        cmdSuccess  = 3,    
        cmdFail     = 4,    
        cmdTimeout  = 5,    
        cmdProcess  = 6,
        cmdAddTime  = 7,
    };
Run Code Online (Sandbox Code Playgroud)

在注意到最终枚举成员之后的逗号时,我惊呆了; 我删除了它,并且正如预期的那样,它仍然被编译.但为什么它最终的逗号一起使用?

(并没有提到成员的奇怪排序;我会在索引0处放置一个新的"cmdNothing",或者至少让"cmdFail"占据该位置)

c# enums

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

为什么这个被覆盖的方法变灰了?

在我必须维护的代码中(ELP的"Lucky Man"绝对不适合这个音轨),我看到这个,变灰了(没有注释掉 - 由编译器或Resharper灰显):

protected override void Dispose( bool disposing )
{
    base.Dispose( disposing );
}
Run Code Online (Sandbox Code Playgroud)

一个橙色灯泡字形(Resharper?)msg说,"删除冗余方法覆盖"

里面有一个"0"的天蓝色圆形字形说:

"覆盖类'System.ComponentModel.Component'中的方法" - 和: "覆盖类'System.Windows.Forms.Control中的方法"

我接受它所说的是,这个覆盖除了它覆盖的方法之外没有任何作用,因此我可以完全删除它.我对吗?

c# resharper overriding dispose visual-studio

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