C#:使用带有括号和匿名对象的语句的目的

教皇教区

我知道在C#中using使用大括号来确保对象的处置如下:

using (MyResource myRes = new MyResource())
{
    myRes.DoSomething();
}

因此,此代码是完全清楚的。
但是我正在阅读一个代码,using其中括号与匿名实例化一起使用。这里有一些样本:

public partial class FrmAuthenticate : Form
{
    public String Username { get; set; }
    public String Password { get; set; }
    private void btnOk_Click(object sender, EventArgs e)
    {
        NetworkCredential writeCredentials = new NetworkCredential(txtUsername.Text, txtPassword.Text);
        using (new NetworkConnection(IpPath, writeCredentials))
        {
            Username = txtUsername.Text;
            Password = txtPassword.Text;
        }
    }
}

要么

using (new NetworkConnection(TargetProgramSldDir, writeCredentials))
using (new NetworkConnection(@"\\"+ this.TargetServerIp, writeCredentials))
{
    if (Directory.Exists(TargetProgramSldDir + @"\MyService"))
        Copy(TargetProgramSldDir + @"\MyService", backupDir + @"\MyService");
}

在两种情况下如何使用匿名对象?NetworkConnection在两个代码中如何使用创建的对象我不明白using特别是第一个示例代码声明的目的是什么?

乔恩·斯基特

在两个代码中如何使用创建的NetworkConnection对象?

它只是放置在块的末尾。

我假设正在发生的事情是,如果凭据无效,则构造函数将失败-因此,在这种情况下,永远不会更新属性。如果构造函数成功,则将更新属性,然后将NetworkConnection其处置。

就目前而言,代码存在的一个问题是没有捕获到异常-它会传播到事件循环中,该事件循环有望附加一个异常处理程序-但实际上并不太令人愉快。

如果这是我维护的代码库中的代码,则尝试将其重构为以下形式:

if (NetworkConnection.TestCredentials(IpPath, writeCredentials))
{
    Username = txtUsername.Text;
    Password = txtPassword.Text;
}
else
{
    // Report the error to the user
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

“使用”语句中的C#匿名对象可靠吗?

来自分类Dev

“使用”语句中的C#匿名对象可靠吗?

来自分类Dev

是否可以在 C# 中创建带有子对象的匿名对象?

来自分类Dev

带有双重括号的C ++ if语句有什么作用?

来自分类Dev

C#使用带有双重IDisposable的语句

来自分类Dev

带有公共 getter 和 setter 的私有成员的目的是什么?C#

来自分类Dev

使用带有和不带有return语句的函数初始化JavaScript对象之间有什么区别?

来自分类Dev

Codeigniter where带有括号的语句

来自分类Dev

带有尖括号和方括号的Chrome控制台对象属性

来自分类Dev

具有字典属性的C#匿名对象

来自分类Dev

C# - 带有对象的数据注释

来自分类Dev

带有 for 语句的元组对象

来自分类Dev

带有c#和f#项目的根文件夹中的Directory.Build.props导致问题

来自分类Dev

C# 和 WPF,当使用 mvvm 样式和按钮动作作为带有 commandparameter 的命令时,如何始终在 commandparameter 中创建一个新对象?

来自分类Dev

C# 列出带有索引、对象和 DoStuff() / 到数组的 Lambda

来自分类Dev

带有 C# 和 Mono 的 Json

来自分类Dev

带有匿名对象和常量列的LINQ to SQL中的奇怪行为

来自分类Dev

C#序列化带有对象列表的对象

来自分类Dev

C is语句括号和isnan宏

来自分类Dev

使用带有MySql和PHP错误的IF语句

来自分类Dev

在C#中使用带有Entity Framework的类对象更新记录

来自分类Dev

c# 使用 LINQ 将带有 List 字段的对象转换为 List

来自分类Dev

带有和不带有括号的python pandas函数

来自分类Dev

在C#中使用ExpandoObject在运行时使用数据动态创建带有动态子对象的对象

来自分类Dev

带有execlp的c中的匿名管道

来自分类Dev

在C#中创建带有或不带有新对象的对象

来自分类Dev

在C#中创建带有或不带有新对象的对象

来自分类Dev

使用括号将带有特殊字符的字段添加到JS对象中

来自分类Dev

在产品页面上使用带有括号[]访问器的设置对象

Related 相关文章

  1. 1

    “使用”语句中的C#匿名对象可靠吗?

  2. 2

    “使用”语句中的C#匿名对象可靠吗?

  3. 3

    是否可以在 C# 中创建带有子对象的匿名对象?

  4. 4

    带有双重括号的C ++ if语句有什么作用?

  5. 5

    C#使用带有双重IDisposable的语句

  6. 6

    带有公共 getter 和 setter 的私有成员的目的是什么?C#

  7. 7

    使用带有和不带有return语句的函数初始化JavaScript对象之间有什么区别?

  8. 8

    Codeigniter where带有括号的语句

  9. 9

    带有尖括号和方括号的Chrome控制台对象属性

  10. 10

    具有字典属性的C#匿名对象

  11. 11

    C# - 带有对象的数据注释

  12. 12

    带有 for 语句的元组对象

  13. 13

    带有c#和f#项目的根文件夹中的Directory.Build.props导致问题

  14. 14

    C# 和 WPF,当使用 mvvm 样式和按钮动作作为带有 commandparameter 的命令时,如何始终在 commandparameter 中创建一个新对象?

  15. 15

    C# 列出带有索引、对象和 DoStuff() / 到数组的 Lambda

  16. 16

    带有 C# 和 Mono 的 Json

  17. 17

    带有匿名对象和常量列的LINQ to SQL中的奇怪行为

  18. 18

    C#序列化带有对象列表的对象

  19. 19

    C is语句括号和isnan宏

  20. 20

    使用带有MySql和PHP错误的IF语句

  21. 21

    在C#中使用带有Entity Framework的类对象更新记录

  22. 22

    c# 使用 LINQ 将带有 List 字段的对象转换为 List

  23. 23

    带有和不带有括号的python pandas函数

  24. 24

    在C#中使用ExpandoObject在运行时使用数据动态创建带有动态子对象的对象

  25. 25

    带有execlp的c中的匿名管道

  26. 26

    在C#中创建带有或不带有新对象的对象

  27. 27

    在C#中创建带有或不带有新对象的对象

  28. 28

    使用括号将带有特殊字符的字段添加到JS对象中

  29. 29

    在产品页面上使用带有括号[]访问器的设置对象

热门标签

归档