小编Hen*_*man的帖子

为什么无法捕获Directory.Exist中的ArgumentException?

为什么我不能在这里抓住争论的激励:

        string path = "\"";
        bool dirOk = true;
        try
        {
            dirOk = Directory.Exists(path);
        }
        catch (ArgumentException)
        {
            dirOk = false;//Never gets in here
        }
Run Code Online (Sandbox Code Playgroud)

编辑:对不起,样品路径不好,现在改了!

配置VS调试器以暂停所有异常.VS将断言:"ArgumentException发生""路径中的非法字符.",但try catch什么都不做.


编辑2:我想我明白了,抱歉.VS中断,但异常已经在Exists()中捕获.

c# exception-handling

0
推荐指数
1
解决办法
177
查看次数

睡眠方法无法正常工作

好的,我有一个棋盘应用程序.该应用程序在一个组框中有64个面板.这些面板用表达式CHessBoardPanels {x,y)标识.我用它来改变面板的背景颜色.我想在chessPanel.BackGround变为红色和面板变回白色之间有一个小的延迟.(大约1到2秒的延迟)我尝试过睡眠功能,但它基本上锁定了应用程序直到任务已经完成完成

这是我尝试过的代码:

for (int Row = 7; Row > 3; --Row)
{
    chessBoardPanels[ Column ,Row].BackColor = Color.Red;
    ++Column;
    //Add text to Moves TextBox
    MovesText.AppendFormat("WhtB {0} {1}{2}", ColumnText, RowText, Environment.NewLine);
    MovesTxt.Text = MovesText.ToString();
    ++ColumnText;
    --RowText;
}

//Start White Horizonal Drill
Column = 0;
Thread.Sleep(5000);             //This does not delay proerperly
for (int Row = 7; Row > 4; --Row)
{
    chessBoardPanels[Column, Row].BackColor = Color.White;
    ++Column;
    //Add text to Moves TextBox
    MovesText.AppendFormat("WhtB {0} {1}{2}", ColumnText, RowText, Environment.NewLine);
    MovesTxt.Text = MovesText.ToString();
    ++ColumnText;
    --RowText; …
Run Code Online (Sandbox Code Playgroud)

c# winforms

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

给定字符的大小是多少?

我有一个我在C中无法理解的代码; char c是字符串,应该是随机的,这里是问题,26应该是从97开始的值范围,但它很容易理解整数,但在char的情况下我不知道它是什么意思成为

char c = (char) rand() % 26 + 97;
Run Code Online (Sandbox Code Playgroud)

c

0
推荐指数
1
解决办法
86
查看次数

如何通过字符串在Roslyn中创建SyntaxFactory.UsingStatement

我想通过Roslyn填充这种类型的using语句.

Using(var logger = new MethodLogger("someparam"))
{

}
Run Code Online (Sandbox Code Playgroud)

我怎样才能生成它..

我正在尝试这个SyntaxFactory.UsingStatement

c# roslyn

0
推荐指数
1
解决办法
422
查看次数

BitConverter返回错误的字节?

我试图将值转换为字节数组.

例如,我有:

var b1 = BitConverter.GetBytes(0x85);
var b2 = BitConverter.GetBytes(12345);
Run Code Online (Sandbox Code Playgroud)

价值b1是:

{byte[4]}
    [0]: 133
    [1]: 0
    [2]: 0
    [3]: 0
Run Code Online (Sandbox Code Playgroud)

并且b2:

{byte[4]}
    [0]: 57
    [1]: 48
    [2]: 0
    [3]: 0
Run Code Online (Sandbox Code Playgroud)

为什么字节数组的大小总是为4?是否可以返回正确的字节数(即不包括尾随0)?

c#

0
推荐指数
1
解决办法
826
查看次数

C#,如何计算操作字符串

我有一个这样的字符串

str = "4975 + 10 * (LOG(250.6)) - 321.2"
Run Code Online (Sandbox Code Playgroud)

我想计算这个操作的结果.有没有办法做到这一点?

// my operation just includes some of operators (,), +, -, *, / , ., 0-9, LOG
// '.' is used for double number
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
121
查看次数

C#中的后代没有给出正确的价值

我是非常新的XML使用C#我有一个XML我需要通过父亲中的特定子项我需要获取id和调用变量变量我这样做但每次都没有通过循环

我需要通过xml的所有父项,直到我得到我想要的树吗?

xml

<message xmlns="jabber:client" to="1072@finesse1.dcloud.cisco.com" id="/finesse/api/User/1072/Dialogs__1072@finesse1.dcloud.cisco.com__104Y2" from="pubsub.finesse1.dcloud.cisco.com">
<event xmlns="http://jabber.org/protocol/pubsub#event">
 <items node="/finesse/api/User/1072/Dialogs">
  <item id="460c2d27-c914-4c24-a95f-edf9f8df45c21535">
    <notification xmlns="http://jabber.org/protocol/pubsub">
      <Update>
        <data>
          <dialogs>
            <Dialog>
              <associatedDialogUri></associatedDialogUri>
              <fromAddress>1071</fromAddress>
              <id>18639330</id>
              <mediaProperties>
                <DNIS>1072</DNIS>
                <callType>AGENT_INSIDE</callType>
                <dialedNumber>1072</dialedNumber>
                <outboundClassification></outboundClassification>
                <callvariables>
                  <CallVariable>
                    <name>callVariable1</name>
                    <value></value>
                  </CallVariable>
                  <CallVariable>
                    <name>callVariable2</name>
                    <value></value>
                  </CallVariable>
                  <CallVariable>
                    <name>callVariable3</name>
                    <value></value>
                  </CallVariable>
                  <CallVariable>
                    <name>callVariable4</name>
                    <value></value>
                  </CallVariable>
                  <CallVariable>
                    <name>callVariable5</name>
                    <value></value>
                  </CallVariable>
                  <CallVariable>
                    <name>callVariable6</name>
                    <value></value>
                  </CallVariable>
                  <CallVariable>
                    <name>callVariable7</name>
                    <value></value>
                  </CallVariable>
                  <CallVariable>
                    <name>callVariable8</name>
                    <value></value>
                  </CallVariable>
                  <CallVariable>
                    <name>callVariable9</name>
                    <value></value>
                  </CallVariable>
                  <CallVariable>
                    <name>callVariable10</name>
                    <value></value>
                  </CallVariable>
                </callvariables>
              </mediaProperties>
              <mediaType>Voice</mediaType>
              <participants>
                <Participant>
                  <actions>
                    <action>ANSWER</action>
                  </actions>
                  <mediaAddress>1072</mediaAddress>
                  <mediaAddressType>AGENT_DEVICE</mediaAddressType>
                  <startTime>2017-09-15T19:23:36.872Z</startTime> …
Run Code Online (Sandbox Code Playgroud)

c# xml linq-to-xml

0
推荐指数
1
解决办法
350
查看次数

用较小的时间尝试 Task.Delay。试图找出为什么会发生这种情况

试图了解如何使用 Task.Delay 我一直在做一系列简单的实验,我发现了以下内容。

首先我这样做了

static void Main(string[] args)
  {
     Console.WriteLine("Start");
     Task.Run(async () => {
                    Stopwatch sw = Stopwatch.StartNew();
                    await Task.Delay(2000);
                 //    for(int i=0;i<1000;i++)
                  //         await Task.Delay(2);
                     sw.Stop();
                    Console.WriteLine("Delay of {0}", sw.ElapsedMilliseconds);
                   //return sw.ElapsedMilliseconds;
                });

    Console.WriteLine("End of everything:");
    Console.ReadKey();

    }
Run Code Online (Sandbox Code Playgroud)

结果正如预期的那样延迟了 2 秒多一点。到目前为止,一切都很好!然后我注释了延迟线并取消注释了 for 循环。1000 次 2 毫秒必须给出 2 秒,对吗?错误的!这次用了15秒。

我稍后会对此发表评论,但只是为了进行比较,我这样做了。

    static void Main(string[] args)
    {
     Console.WriteLine("Start");
     Stopwatch sw = Stopwatch.StartNew();
     for (int i = 0; i < 1000; i++)
          Thread.Sleep(2);

//         Thread.Sleep(2000);
      sw.Stop();
      Console.WriteLine("Delay of {0}", sw.ElapsedMilliseconds);
      Console.WriteLine("End");

    }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我得到了更精确的 …

c# timedelay

0
推荐指数
1
解决办法
1647
查看次数

如何在后台运行数据库功能?

我正在使用C#windows窗体并遇到了这个问题

我有两种形式,在第一种形式用户输入用户名和按下按钮.Button调用一个在数据库中保存用户名的函数.

private void btn_Click(object sender, EventArgs e)
{
    Database db = new Database();
    db.SaveUsername(txtUsername.Text);
    new Form2().Show();
}
Run Code Online (Sandbox Code Playgroud)

这个SaveUsername()函数是在单独的类中

class Database
{
    public void SaveUsername(string username)
    {
        Connect(); //Connection to database
        //Some lines to save username in database
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是当用户点击进入它需要一点时间打开Form2所以我希望新的表单应该出现并且SaveUsername()功能在后台运行而无需用户等待它完成.怎么做?

c# winforms async-await

0
推荐指数
1
解决办法
130
查看次数

模型视图...用于Blazor

尽管我用谷歌搜索了一段时间,但我找不到服务器端Blazor的任何Model-View-XYZ框架实现,即Razor组件XYZ代表以下任何一种:ControllerPresenterViewModel)。

如果有人知道这样的实现,无论它处于开发的哪个阶段,请告诉我。非常感谢。

编辑:问题是,是否有人遇到参与了这种框架的开发

这个问题非常简单 -有人在Internet上遇到过一些有关针对Razor组件(又称为服务器端Blazor)的框架的信息,因为到目前为止我还没有。

model-view-controller mvp mvvm blazor

0
推荐指数
2
解决办法
610
查看次数