小编Але*_* Д.的帖子

在case语句中检测到无法访问的代码

我有一个代码:

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        switch (keyData)
        {
            case Keys.Alt|Keys.D1:

                if (this._condition1)
                {
                    return true;
                }
                else
                {
                    return base.ProcessCmdKey(ref msg, keyData);
                }

                break;

            case Keys.Control |Keys.U:

                if (this._condition2)
                {
                    return true;
                }
                else
                {
                    return base.ProcessCmdKey(ref msg, keyData);
                }

                break;

            default:

                return base.ProcessCmdKey(ref msg, keyData);
        }

        return true;
Run Code Online (Sandbox Code Playgroud)

它让我在休息时"检测到无法访问的代码"警告.

在这里不使用break运算符是一种好习惯吗?我不想关闭"检测到无法访问的代码"警告.

PS:我的ProcessCmdKey方法有很多种情况.

c#

17
推荐指数
4
解决办法
2万
查看次数

以编程方式更改行/列范围(tablelayoutpanel)

我有一个tablelayoutpanel.2x2 - 2列2行.

例如,我在第1行第二列中添加了一个按钮button1.button1的dock属性设置为Fill.VS Designer允许设置button1的列/行范围属性.

我希望可用性以编程方式更改button1的 行跨度属性,因此它可以填充所有第二列(1行和第2行)和可用性以将其设置回来.

怎么样?

c# tablelayoutpanel winforms

16
推荐指数
2
解决办法
2万
查看次数

为什么不允许在没有{}的情况下使用try-catch语句?

为什么我不能使用这样的代码?

1

int i = 0;

try i = int.Parse("qwerty");
catch throw;
Run Code Online (Sandbox Code Playgroud)

2

try i = int.Parse("qwerty");
catch;
finally Log.Write("error");
Run Code Online (Sandbox Code Playgroud)

应该像这样写

1

int i = 0;

try { i = int.Parse("qwerty"); } catch { throw; }
Run Code Online (Sandbox Code Playgroud)

2

try { i = int.Parse("qwerty");}
catch {}
finally {Log.Write("error");}
Run Code Online (Sandbox Code Playgroud)

PS:

我可以在没有{}的情况下使用if-else语句.我为什么要用try-catch(-finally)语句来使用它们?有什么有意义的理由吗?

是不是因为有些人认为代码难以阅读?

几个月前,我在俄罗斯编程论坛上提出这个问题,但我没有得到满意的答复......

c#

10
推荐指数
1
解决办法
294
查看次数

解析以分号分隔的列表

我有一个以分号分隔的值列表,例如:

strins s = "param1=true;param2=4;param3=2.0f;param4=sometext;";
Run Code Online (Sandbox Code Playgroud)

我需要一个功能:

public bool ExtractBool(string parameterName, string @params);
public int ExtractInt(string parameterName, string @params);
public float ExtractFloat(string parameterName, string @params);
public string ExtractString(string parameterName, string @params);
Run Code Online (Sandbox Code Playgroud)

.net中是否有特殊功能可以帮助我使用以分号分隔的列表?

PS:参数名称在列表中相等.

.net c# csv algorithm

7
推荐指数
1
解决办法
8568
查看次数

为什么有些人使用"无"作为枚举成员?

我注意到一些枚举作为枚举成员有"无".

比如我的意思

enum Mode
{
    Mode1 = 1,
    Mode2 = 2,
    Mode3 = 3,
    None = 4
}
Run Code Online (Sandbox Code Playgroud)

他们为什么要用它?在什么情况下,更优选不含有成员的溶液(不太优选)?

c#

6
推荐指数
2
解决办法
218
查看次数

使 XML 文档引用类的字段

如何从XML注释中引用UpdateChanged字段Long1

public sealed class SystemConfiguration
{
    public long Long1;

    /// <summary>
    /// Make reference to Long1
    /// </summary>
    public bool UpdateChanged;
}
Run Code Online (Sandbox Code Playgroud)

c#

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

C#,将时间从浮点数表示转换为字符串表示

我将时间表示为浮点数(以秒为单位).我需要一个函数将此表示转换为字符串格式.像这样的东西:

    /// <summary>
    /// Get time from a float representation.
    /// </summary>
    /// <param name="f">Time in a floating-point number.</param>
    /// <returns>Time in a string format.</returns>
    string GetTime(float f)
    {
        return f.ToString(); // string format is hh:mm:ss (h-hours, m-minutes, s-seconds)
    }
Run Code Online (Sandbox Code Playgroud)

例如,10.0转换为00:00:10,67.0转换为00:01:07

c# algorithm

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

将list <>绑定到datagrid时 - 如何更改列名?

我有一个代码:

VideoChannel[] channels = GetVideoChannels();

dataGridView1.DataSource = channels;
dataGridView1.Refresh();
Run Code Online (Sandbox Code Playgroud)

VideoChannel是一个具有许多属性的类.这段代码工作正常,但我想更改列名.默认情况下,列名称= VideoChannel的属性名称.是否有一些属性我可以标记VideoChannel的属性,所以列名!=属性名?

c# data-binding datagridview

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

来自control.Invoke((MethodInvoker)委托的返回值{/*...*/};我需要一些解释

#1和#2之间有什么区别:

代码1(编译好):

        byte[] GetSomeBytes()
  {
            return (byte[])this.Invoke((MethodInvoker)delegate 
            { 
                GetBytes(); 
            });
  }

  byte[] GetBytes()
  {
   GetBytesForm gbf = new GetBytesForm();

   if(gbf.ShowDialog() == DialogResult.OK)
   {
    return gbf.Bytes;
   }
   else
    return null;
  }
Run Code Online (Sandbox Code Playgroud)

代码2(没有成功)

int GetCount()
{
       return (int)this.Invoke((MethodInvoker)delegate
       {
           return 3;            
       });
}
Run Code Online (Sandbox Code Playgroud)

代码#2给了我,因为'System.Windows.Forms.MethodInvoker'返回void,返回关键字后面不能跟一个对象表达式.

我该如何解决?为什么(做)编译器认为代码#1是对的?

c# invoke

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

获取SQL Server 2008 Management Studio图标

我想从SQL Server 2008 Management Studio获取图标.它是免费的吗?如果是这样我可以在哪里下载?

ssms sql-server-2008

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