相关疑难解决方法(0)

C#3.0+中属性和字段的区别

我意识到它似乎是C#中字段和属性之间有什么区别的重复但我的问题略有不同(从我的观点来看):

一旦我知道了

  • 我不会将我的课程用于"仅适用于属性的技术"和
  • 我不会在getter/setter中使用验证代码.

是否有任何区别(风格/未来发展除外),如设置属性时的某种控制类型?

是否有任何额外的区别:

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

public string myString;
Run Code Online (Sandbox Code Playgroud)

(我知道,第一个版本需要C#3.0或更高版本,并且编译器会创建私有字段.)

c# field properties automatic-properties c#-3.0

138
推荐指数
6
解决办法
7万
查看次数

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

什么是这个奇怪的C#语法,我该如何构建它?

在阅读项目时,我发现了一些奇怪的C#代码:

public class F : IElement
{
    public int CurrentHp { get; } = 10;
    public bool IsDead => CurrentHp <= 0;
}
Run Code Online (Sandbox Code Playgroud)

通常我会写一些类似的东西:

public class F : IElement
{
    public const int CurrentHp = 10;
    public bool IsDead
    {
        get { return CurrentHp <= 0; }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的Visual Studio 2013也无法识别第一个示例.

这个语法是什么,我该怎么做才能使这个项目可构建?

c# syntax c#-6.0

32
推荐指数
3
解决办法
2922
查看次数

C#lambda变量初始化

今天我第一次看到类似的东西:

private string m => string.Empty;
Run Code Online (Sandbox Code Playgroud)

使用lambda初始化变量.为什么这样做,有什么好处?

c# c#-6.0

27
推荐指数
3
解决办法
5499
查看次数

使用反射更改只读属性

可能吗?用反射或任何其他方式?

c# reflection

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

变量的=和=>有什么区别?

这两种添加方式有什么区别?

private string abc => "def";
Run Code Online (Sandbox Code Playgroud)

private string abc = "def";
Run Code Online (Sandbox Code Playgroud)

c#

14
推荐指数
1
解决办法
722
查看次数

在声明属性时,".>"在.Net C#中做了什么?

我在.NET 4.6.1 C#项目中看到过这种属性声明

public object MyObject => new object();
Run Code Online (Sandbox Code Playgroud)

我习惯于声明这样的只读属性:

public object MyObject { get; }
Run Code Online (Sandbox Code Playgroud)

我知道两者之间存在一些差异(第一个创建一个新对象),但我想要更深入的解释以及何时使用其中任何一个的一些迹象.

.net c#

8
推荐指数
1
解决办法
2830
查看次数

什么是=>运算符,不与lambda表达式一起使用?

前几天我正在看某人的图书馆,他们有这个:

internal static string BaseUrl => "https://api.stripe.com/v1";
public static string Invoices => BaseUrl + "/invoices";
Run Code Online (Sandbox Code Playgroud)

是不是=>只是作为赋值=运算符?这不是一样的:

internal static string BaseUrl = "https://api.stripe.com/v1";
public static string Invoices = BaseUrl + "/invoices";
Run Code Online (Sandbox Code Playgroud)

从来没有见过这个.

c# lambda assignment-operator

6
推荐指数
1
解决办法
88
查看次数

=&gt; 运算符从字段或方法指向是什么意思?C#

我在下面的例子中看到了一个运算符 =>:

public int Calculate(int x) => DoSomething(x);
Run Code Online (Sandbox Code Playgroud)

或者

public void DoSoething() => SomeOtherMethod();
Run Code Online (Sandbox Code Playgroud)

除了在 Lamba 表达式中,我以前从未见过像这样使用这个运算符。

以下有什么作用?应该在哪里、什么时候使用?

c# lambda function

5
推荐指数
2
解决办法
7277
查看次数

c#中的未知运算符

嗨,我不是C#的专家,我发现这段代码,并不真正理解它的作用.

我之前从未见过=>c#中的运算符.就像一个重定向?

public byte[] methodA(byte[] data) => 
  this.methodB(data);
Run Code Online (Sandbox Code Playgroud)

c#

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