相关疑难解决方法(0)

结构与课程

我即将在代码中创建100,000个对象.它们很小,只有2或3个属性.我将它们放在一个通用列表中,当它们存在时,我将循环它们并检查值a并可能更新值b.

将这些对象创建为类还是结构更快/更好?

编辑

一个.属性是值类型(我认为字符串除外?)

湾 他们可能(我们还不确定)有一个验证方法

编辑2

我想知道:堆上的对象和堆栈是否由垃圾收集器同等处理,或者它的工作方式有何不同?

c# struct

89
推荐指数
4
解决办法
6万
查看次数

如果结构是值类型,为什么我可以新建它?

在C#中,结构是值类型,但我能够将new它们视为引用类型.为什么是这样?

c# struct value-type new-operator

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

为什么没有new关键字可以实例化一个struct?

为什么我们没有被强制实例化一个结构,比如在使用类时?

.net c# struct instantiation

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

结构初始化和新运算符

我在C#中有两个相似的结构,每个结构都包含一个整数,但后者有实现的get/set访问器.

为什么在分配字段之前必须Y使用new运算符初始化struct a?是y仍然当我初始化它的值类型new

public struct X
{
    public int a;
}

public struct Y
{
    public int a { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        X x;
        x.a = 1;

        Y y;
        y.a = 2; // << compile error "unused local variable" here

        Y y2 = new Y();
        y2.a = 3;
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# struct

21
推荐指数
3
解决办法
939
查看次数

int num = new int(); 这条线执行时会发生什么?

今天要了解一个新事物,我们可以使用new运算符创建整数,如下所示

int num = new int();
Run Code Online (Sandbox Code Playgroud)

现在我想知道我是否以这种方式创建一个整数,然后生成的整数将是值类型或引用类型?我想这将是一种价值类型.我尝试了下面的代码

int num1 = 10;
int num2 = new int();
int num3;
num1 = num2;
num2 = num3;
Run Code Online (Sandbox Code Playgroud)

我得到了以下构建错误:

使用未分配的局部变量'num3'

我知道为什么会出现这个构建错误.但我想知道何时以及如何使用new int()以及这究竟是如何工作的?有人可以对此有所了解吗?

感谢和问候 :)

.net c# instantiation value-type new-operator

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

标签 统计

c# ×5

struct ×4

.net ×3

instantiation ×2

new-operator ×2

value-type ×2