相关疑难解决方法(0)

字段和属性之间有什么区别?

在C#中,是什么使字段与属性不同,何时应该使用字段而不是属性?

c# field properties

1032
推荐指数
17
解决办法
42万
查看次数

readonly修饰符和私有setter之间哪个更好?

我一直在努力创建一个课程,突然想到了两个代码之间有什么区别:

public readonly string ProductLocation;
Run Code Online (Sandbox Code Playgroud)

public string ProductLocation
{
     get;
     private set;
}
Run Code Online (Sandbox Code Playgroud)

你能告诉我什么时候更好地使用以下内容吗?谢谢.

c# readonly private-members

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

C#readonly vs Get

readonly修饰符和get-only属性之间是否存在任何差异?

例:

public class GetOnly
{
    public string MyProp { get; }
}

public class ReadOnly
{
    public readonly string MyProp;
}
Run Code Online (Sandbox Code Playgroud)

奖励:有没有办法使界面适用于两者?(与泛型一起使用)

public interface ISomething
{
    public string MyProp { get; }
}

public class GetOnly : ISomething
{
    public string MyProp { get; }
}

public class ReadOnly : ISomething // Cannot implement
{
    public readonly string MyProp;
}
Run Code Online (Sandbox Code Playgroud)

提前谢谢了!

c# properties

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

只读字段与只读属性

有时我看到用readonly成员定义的类是这样的:

class Foo
{
    private readonly string bar;

    public Foo(string bar)
    {
        this.bar = bar;
    }

    public string Bar => bar;
}
Run Code Online (Sandbox Code Playgroud)

有时我看到用readonly成员定义的类是这样的:

class Foo
{
    public Foo(string bar)
    {
        Bar = bar;
    }

    public string Bar { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

第二个例子看起来更具可读性/简洁性,但我想知道是否有任何合理的理由明确定义readonly支持字段(根据第一个例子)?

有关这两个例子的深入分析,请在CLR中理想地涵盖真正发生的事情.

c#

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

C# 9 中的 Init-Only 和 ReadOnly 有什么区别?

我正在浏览即将发布的C# 9 新功能Init-Only属性正在被引入。

今天的一大限制是属性必须是可变的,对象初始值设定项才能工作:它们通过首先调用对象的构造函数(在本例中为默认的无参数构造函数)然后分配给属性设置器来起作用。

仅初始化属性解决了这个问题!他们引入了一个 init 访问器,它是 set 访问器的变体,只能在对象初始化期间调用:

public class Person
{
    public string FirstName { get; init; }
    public string LastName { get; init; }
}
Run Code Online (Sandbox Code Playgroud)

有了这个声明,上面的客户端代码仍然是合法的,但是对 FirstName 和 LastName 属性的任何后续分配都是错误的。这条线是什么意思?如果 ReadOnly 也做同样的事情,那么 Init-Only 属性的用途是什么。

c# c#-9.0

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

标签 统计

c# ×5

properties ×2

c#-9.0 ×1

field ×1

private-members ×1

readonly ×1