标签: reference

C#对象实例无法正常工作

我有一个类Node如下:

public class Node
{
    public Dictionary<string, string> dictionary; 
    public Node(Dictionary<string, string> dictionary)
    {
        this.dictionary = dictionary;
    }
    public void CreateNode()
    {
        this.dictionary.Add("1", "String1");
        Dictionary<string, string> dictionary1 = new Dictionary<string, string>();
        Console.WriteLine(this.dictionary["1"]);
        Node tmp = new Node(dictionary1);
        tmp.dictionary = this.dictionary;
        Console.WriteLine(tmp.dictionary["1"]);
        tmp.AddE(tmp, "String2","2");

        Console.WriteLine(this.dictionary["2"]);
    }
    public void AddE(Node tmp,String text,string c)
    {
        tmp.dictionary.Add(c,text);
    }               
}
Run Code Online (Sandbox Code Playgroud)

Node有一个包含字符串键和值的字典,一个带参数的构造函数,一个CreateNode()方法,它将一个项添加到字典中并创建另一个Node.现在,在tmp.dictionary = this.dictionary之后; tmp.dictionary上添加了另一个项目,但是它也添加在this.dictionary中(我不希望发生这种情况,我很想丢失).

主要方法:

static void Main(string[] args)
{
    Dictionary<string, string> dictionary …
Run Code Online (Sandbox Code Playgroud)

c# reference instance

0
推荐指数
1
解决办法
133
查看次数

为什么我可以在C++中为文字值分配现有引用?

考虑以下:

int ival = 1.01;
int &rval = 1.01; // error: non-const reference to a const value.
int &rval = ival;

rval = 1.01;
Run Code Online (Sandbox Code Playgroud)

&rval到文字值的第一次赋值失败了.如果我注释掉该行代码编译并运行.我理解为什么初始化失败了,但我很困惑为什么rval的赋值在最后一行工作.我认为不允许分配对文字值的引用.

编辑:谢谢你的快速解答.我很想删掉这个以掩饰我的耻辱,但我想我会留在这里,所以其他人都可以指出并笑.

在我自己的辩护中,我正在编写一本书中的练习(C++ Primer),这个问题与参考初始化有关.尽管如此,首先完全忽略了参考点是非常尴尬的.:)

c++ initialization reference literals variable-assignment

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

Monkeypatching Python中的方法调用

如何在Python中推迟属性访问?

我们假设我们有:

    def foo():
        ...

    class Bar:
        ...

    bar = Bar()
Run Code Online (Sandbox Code Playgroud)

是否可以实现Bar以便bar访问任何时间,foo()将提供回调返回的值?

barname已存在于上下文中.这就是为什么它的访问语义应该被保留(它不能是一个可调用的,转换成一个类的属性,使用SomeClass.bar而不是bar也行不通).我需要按原样保留所有内容,但是更改程序以便通过bar引用即时生成的数据foo().

UPD:感谢所有人的回答,从而在Python中做这类事情似乎是不可能的.我会找到一个解决方法.

python properties reference callback

-1
推荐指数
1
解决办法
368
查看次数

新的C#,如何找到导航对象/集合的路线图?

好的,所以我是来自ColdFusion,PHP,Javascript的C#Windows App开发的新手.我想,我对它的反应相当好.我理解OO的基本概念以及它们是如何在C#中实现的,但我正在努力学习如何找到我正在寻找的东西,以及在对象,方法,集合等方面可以使用的东西.

例如.我有一个数据视图(名为"绘图"),我想使用RowFilter过滤它,所以我这样做:

drawing.RowFilter = "partNo = '" + partNo + "'";
Run Code Online (Sandbox Code Playgroud)

作为初学者,我现在如何知道如何访问该数据视图中的特定数据字段?我终于摸索了,并且能够以两种不同的方式做到:

drawing[0].Row.ItemArray[0]
  or
drawing[0][0]
Run Code Online (Sandbox Code Playgroud)

我的问题是:我如何做更少的摸索,更多的理解和导航......本质上是生产力而不是猜测!?我已经逐步阅读了Visual C#.NET和Apress'Beginning C#OO,但他们似乎都没有告诉我如何导航这样的语言或者给出这个细节.这意味着这只是一个幸运而不是理解的问题,这似乎是浪费时间.我知道理解会随着时间和经验而来,但必须有更好的学习方法.无论是在基础层面还是在基础层面上存在着基本的理解,如果是这样的话,它是什么?

那么我怎么知道在数据视图中找到一个字段的值:"dataview"[index] .Row.ItemArray [index]?

我没有在书中看到它,我似乎无法在msdn网站上找到它:http://msdn.microsoft.com/en-us/library/01s96x0z.aspx

我只是一厢情愿吗?

c# syntax reference

-1
推荐指数
1
解决办法
196
查看次数

为变量分配对象引用

我有一个关于在这里分配的问题,我想知道

  1. 是否Assign制作整个对象的副本和
  2. 我想知道是否FTEA.Objects[0]也被释放了.

我想复制一份,FTEA.Objects[0]当我获得自由时ObjCur,我不打算自由FTEA.Objects[0]- 不确定这样做的正确方法,需要你的帮助,谢谢:

function xxxxxxxxxxxxxxxxxxxxxxxx
var 
  curQuo, tempQuo:TXX_TEA;
begin
  curQuo :=TXX_TEA(FTEA.Objects[0]);
  if xxxxxxxxx then
  begin
    tempQuo := TXX_TEA.Create();
    tempQuo.Assign(curQuo);   // Question 1: Assign copy the whole object value or not
    objCur.AddQuo(tempQuo)
  end
  else
    TXX_TEA(objCur.Quos[0]).Assign(curQuo);
  end;

  finally
    objCur.Free; // Question 2: FTEA.Objects[0] is freed or not
  end;
end
Run Code Online (Sandbox Code Playgroud)

delphi free reference object assign

-1
推荐指数
1
解决办法
1336
查看次数

Perl:取消引用数组引用所花费的时间是否取决于数组的大小?

好奇,如果有人知道(或可以轻松测试)引用然后取消引用数组所需的时间.

my @foo = (0..1500000);     # (~1.5M nodes).
join('',@{\@foo});          # any noticeable time difference vs join('',@foo) ?
Run Code Online (Sandbox Code Playgroud)

这显然没有正当理由,但我遇到了不合理的代码:)

perl reference dereference

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

C++"非const引用的初始化无效"错误

我的"Policy"类有两个不同版本的构造函数.在使用其中一个构造函数时,我似乎无法通过引用传递Policy对象,我不明白为什么不这样做.

重载的构造函数:

Policy::Policy(int testing) { 
    initAge=160;    
    initState=1;    

    reset();        

    x[0]=4;
    x[1]=2;
    ub[0]=10;
    ub[1]=10;
    lb[0]=0;
    lb[1]=0;

}

Policy::Policy() {
    initAge=160;
    initState=1;

    reset();    

    x[FRQ]=4;
    x[BEG]=40*4;
    x[END]=75*4;
    for(int i=0; i<240; i++)
        x[2+i]=4.0;
    x[GS]=2;

    lb[0]=1;
    ub[0]=80;
    for(int i=1;i<3;i++) {
        lb[i]=160;
        ub[i]=400;
    }
    for(int i=3;i<243;i++) {
        lb[i]=1;
        ub[i]=16;
    }
    lb[243]=2;
    ub[243]=4;

} 
Run Code Online (Sandbox Code Playgroud)

这是我的代码,它给出了错误.

void sampleMIXD(Constraints& space, Policy& p);

int main(int argc, char** argv) {

//  Policy policy(1); // Works
    Policy policy(); // Does not work

    Constraints space(2);

    sampleMIXD(space, policy);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误信息:

'../main.cpp:64: error: invalid …

c++ constructor reference pass-by-reference

-1
推荐指数
1
解决办法
525
查看次数

Perl:解除引用数组

为什么以下代码无法进入匿名数组?

   my @d = [3,5,7];
   print $(@{$d[0]}[0]);  

   # but print $d[0][0] works.
Run Code Online (Sandbox Code Playgroud)

arrays perl reference

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

gcc:通过使用引用可以访问被破坏的堆栈变量?

可能重复:
可以在其范围之外访问局部变量的内存吗?

请考虑以下简单的C++代码:

#include <iostream>

struct Test
{
    Test( int i )
        :   ref( i ),
            ptr( &i ) {}

    int &ref;
    int *ptr;
};

int main()
{
    Test t( 5 );

    std::cout << t.ref << std::endl;
    std::cout << *t.ptr << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Test类存储指针和对生活在堆栈上的局部变量的引用.我会假设从Test构造函数返回后我被破坏了.但显然事实并非如此.因为这是程序的输出:

5
134513968
Run Code Online (Sandbox Code Playgroud)

访问指针的结果是我所期望的:随机值随每次运行而变化.但是引用访问总是导致5 - 只是局部变量i仍然存在.

任何人都可以向我解释这种行为吗?我在64位Linux(版本4.6.3)上使用g ++.

此致,enuhtac

c++ gcc pointers reference dereference

-1
推荐指数
1
解决办法
89
查看次数

在C中有快速指针作为堆栈?(没有间接但仍然堆)

我正在从IL(Compiled C#\ VB代码)创建一个反编译器.有没有办法在C中创建引用?

编辑:
我想要比堆栈之类的指针更快的东西.有这样的事吗?

c reference

-1
推荐指数
1
解决办法
160
查看次数