C# - 将一个对象传递给构造函数,该对象目前为空,但稍后会创建

二进制大整数

我想将一个对象(目前为 null,但稍后会创建)传递给另一个对象的构造函数,如下所示:

State state1 = null;
State state2 = null;
State state3 = null;

state3 = new State(new char[] { '1', '0', '@' },
             new Transition[] { new Transition(ref state3, '1', Movement.H),
                        new Transition(ref state3, '0', Movement.H),
                        new Transition(ref state3,'@', Movement.H)}, true);

state1 = new State(new char[] { '1', '0', '@' },
new Transition[] { new Transition(ref state1, '1', Movement.R),
                        new Transition(ref state1, '0', Movement.R),
                        new Transition(ref state2,'@', Movement.L)}, false);

state2 = new State(new char[] { '1', '0', '@' },
             new Transition[] { new Transition(ref state2, '0', Movement.L),
                        new Transition(ref state3, '1', Movement.L),
                        new Transition(ref state3,'1', Movement.L)}, false);

State对象存储里面Tuple<>是这样的:

public Transition(ref State state, char exchangeChar, Movement move)
{
    transition = new Tuple<State, char, Movement>(state, exchangeChar, move);
}

即使我明确地将它传递为reference,该State对象仍然为空。这是为什么?

帕特里克·霍夫曼

因为您在调用new Tuple<State, char, Movement>.

您应该创建一个包装类,在其中包装 state 参数。这可以是一个通用类,使您的工作变得容易。您需要尽可能多地传递该包装器。

另一个不错的选择是使用Func<State>,它会在每次调用时“计算”值。

另一种选择是使用Lazy,它只会取一次值,这可能会在错误的时间触发,有时会出乎意料。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++:如何将一个对象传递给另一个对象构造函数?

来自分类Dev

是否可以将Moq对象传递给C#类构造函数?

来自分类Dev

在cython中将c ++对象传递给另一个对象的方法的方法

来自分类Dev

在cython中将c ++对象传递给另一个对象的方法的方法

来自分类Dev

C ++将类对象传递给函数

来自分类Dev

c ++:将对象传递给函数

来自分类Dev

C#静态类:我应该将对象传递给构造函数吗?

来自分类Dev

C#静态类:我应该将对象传递给构造函数吗?

来自分类Dev

将派生对象传递给构造函数时出现错误 C2664

来自分类Dev

C ++将Const对象引用传递给构造函数

来自分类Dev

如何将具有字符串数据成员的类的对象传递给C ++中的另一个类

来自分类Dev

在Objective-C中将对象传递给另一个类的最佳方法是什么?

来自分类Dev

C ++试图将类传递给另一个类的构造函数

来自分类Dev

如何将编写的对象传递给另一个类的构造函数?

来自分类Dev

将模板类的对象传递给另一个类的构造函数

来自分类Dev

将FORTRAN对象传递给C,反之亦然

来自分类Dev

将Obj-C的Dictionary对象传递给Swift

来自分类Dev

将Python对象传递给C模块

来自分类Dev

将Javascript对象传递给C#

来自分类Dev

如何将C#对象传递给$ .ajax

来自分类Dev

将FORTRAN对象传递给C,反之亦然

来自分类Dev

C ++:将一个对象复制到构造函数中的另一个对象

来自分类Dev

将类对象传递到模板函数中。C ++

来自分类Dev

C ++将具有重载构造函数的对象添加到另一个对象

来自分类Dev

将复杂对象传递给C ++中的函数,但数组订阅运算符无法正常工作

来自分类Dev

通过指针对象将参数传递给参数化构造函数的C ++程序错误?

来自分类Dev

将类对象指针传递给默认构造函数(C++ 子例程)

来自分类Dev

C++:将数组传递给构造函数并将其保存在 this 对象中

来自分类Dev

将一个类传递给另一类的构造函数时,C ++没有默认的构造函数错误

Related 相关文章

  1. 1

    C ++:如何将一个对象传递给另一个对象构造函数?

  2. 2

    是否可以将Moq对象传递给C#类构造函数?

  3. 3

    在cython中将c ++对象传递给另一个对象的方法的方法

  4. 4

    在cython中将c ++对象传递给另一个对象的方法的方法

  5. 5

    C ++将类对象传递给函数

  6. 6

    c ++:将对象传递给函数

  7. 7

    C#静态类:我应该将对象传递给构造函数吗?

  8. 8

    C#静态类:我应该将对象传递给构造函数吗?

  9. 9

    将派生对象传递给构造函数时出现错误 C2664

  10. 10

    C ++将Const对象引用传递给构造函数

  11. 11

    如何将具有字符串数据成员的类的对象传递给C ++中的另一个类

  12. 12

    在Objective-C中将对象传递给另一个类的最佳方法是什么?

  13. 13

    C ++试图将类传递给另一个类的构造函数

  14. 14

    如何将编写的对象传递给另一个类的构造函数?

  15. 15

    将模板类的对象传递给另一个类的构造函数

  16. 16

    将FORTRAN对象传递给C,反之亦然

  17. 17

    将Obj-C的Dictionary对象传递给Swift

  18. 18

    将Python对象传递给C模块

  19. 19

    将Javascript对象传递给C#

  20. 20

    如何将C#对象传递给$ .ajax

  21. 21

    将FORTRAN对象传递给C,反之亦然

  22. 22

    C ++:将一个对象复制到构造函数中的另一个对象

  23. 23

    将类对象传递到模板函数中。C ++

  24. 24

    C ++将具有重载构造函数的对象添加到另一个对象

  25. 25

    将复杂对象传递给C ++中的函数,但数组订阅运算符无法正常工作

  26. 26

    通过指针对象将参数传递给参数化构造函数的C ++程序错误?

  27. 27

    将类对象指针传递给默认构造函数(C++ 子例程)

  28. 28

    C++:将数组传递给构造函数并将其保存在 this 对象中

  29. 29

    将一个类传递给另一类的构造函数时,C ++没有默认的构造函数错误

热门标签

归档