标签: reference

Visual Studio 8中程序集引用的Aliases属性有何用处

当我在Visual Studio 8中向项目添加程序集引用时,该引用的Aliases属性设置为"global".这个属性有什么用?为什么它设置为全局?

MSDN告诉我,这是程序集的别名列表,但不是为什么我可能想要使用此属性或为什么大多数别名为"全局".

MSDN参考

c# reference csproj visual-studio

66
推荐指数
2
解决办法
4万
查看次数

将数据帧转换为data.table而不复制

我有一个大型数据框(大约几GB),我想转换为data.table.使用as.data.table创建数据框的副本,这意味着我需要的可用内存至少是数据大小的两倍.有没有办法在没有副本的情况下进行转换?

这是一个简单的示例来演示:

library(data.table)
N <- 1e6
K <- 1e2
data <- as.data.frame(rep(data.frame(rnorm(N)), K))

gc(reset=TRUE)
tracemem(data)
data <- as.data.table(data)
gc()
Run Code Online (Sandbox Code Playgroud)

随着输出:

library(data.table)
# data.table 1.8.10  For help type: help("data.table")
N <- 1e6
K <- 1e2
data <- as.data.frame(rep(data.frame(rnorm(N)), K))

gc(reset=TRUE)
# used  (Mb) gc trigger   (Mb)  max used  (Mb)
# Ncells    303759  16.3     597831   32.0    303759  16.3
# Vcells 100442572 766.4  402928632 3074.2 100442572 766.4
tracemem(data)
# [1] "<0x363fda0>"
data <- as.data.table(data)
# tracemem[0x363fda0 -> 0x31e4260]: copy …
Run Code Online (Sandbox Code Playgroud)

r reference dataframe data.table

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

指针和参考参数之间的区别?

这些都是一样的:

int foo(bar* p) {
  return p->someInt();
}
Run Code Online (Sandbox Code Playgroud)

int foo(bar& r) {
  return r.someInt();
}
Run Code Online (Sandbox Code Playgroud)

忽略空指针潜力.这两个函数在功能上是否相同,无论它们someInt()是虚拟的还是传递给它们bar的子类bar

这会切片吗:

bar& ref = *ptr_to_bar;
Run Code Online (Sandbox Code Playgroud)

c++ pointers reference object-slicing

64
推荐指数
5
解决办法
4万
查看次数

foreach()是否通过引用迭代?

考虑一下:

List<MyClass> obj_list = get_the_list();
foreach( MyClass obj in obj_list )
{
    obj.property = 42;
}
Run Code Online (Sandbox Code Playgroud)

'obj'是对列表中相应对象的引用,这样当我更改属性时,更改将在构造到某处的对象实例中持续存在吗?

c# foreach reference

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

有没有办法找到参考的地址?

有没有办法找到参考的地址?

使其更具体:变量本身的地址,而不是它初始化的变量的地址.

c++ reference

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

在同一文件夹中使用同一程序集的不同版本

我有以下情况

项目A.

 - Uses Castle Windsor v2.2
 - Uses Project B via WindsorContainer
Run Code Online (Sandbox Code Playgroud)

项目B.

 - Uses NHibernate
 - Uses Castle Windsor v2.1
Run Code Online (Sandbox Code Playgroud)

在Project AI的bin文件夹中有dll Castle.DynamicProxy2.dll v2.2和NHibernate dll.现在问题是NHibernate依赖于Castle.DynamicProxy2.dll v2.1而不存在.我该如何解决这种情况.

assemblies reference multiple-versions

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

如何更改C++引用所引用的变量?

如果我有这个:

int a = 2;
int b = 4;
int &ref = a;
Run Code Online (Sandbox Code Playgroud)

如何在此代码后ref引用b

c++ reference dynamic-rebinding

63
推荐指数
6
解决办法
5万
查看次数

Javascript指针/参考疯狂.有人可以解释一下吗?

Javascript通过引用传递对象.这很有道理.但是一旦你开始操纵这些物体,一切都会以一种看起来不直观的方式发挥作用.让我举一个例子:

var a, b;

a = {}
b = a;
a['one'] = {};

console.log( JSON.stringify(a) );
// outputs: {"one":{}}

console.log( JSON.stringify(b) );
// outputs: {"one":{}}
Run Code Online (Sandbox Code Playgroud)

这一切都很好,因为现在b有一个指针,a所以预计分配东西a也会影响b.

但是如果我这样做:

a = a['one'];

console.log( JSON.stringify(a) );
// outputs: {}

console.log( JSON.stringify(b) );
// outputs: {"one":{}}
Run Code Online (Sandbox Code Playgroud)

这对我来说很惊讶.我期望a,并b仍然是相同的(并且是{}因为a['one']原先设置为{}a设置为a['one']).

但事实并非如此.似乎a失去了b对它被赋予新内容的时间的引用,但b保留了aa失去引用之前设置的值b.

但是如果我这样做:

a['two'] …
Run Code Online (Sandbox Code Playgroud)

javascript pointers reference

63
推荐指数
4
解决办法
2万
查看次数

在构造之前发送对象的引用

我在其中一个应用程序中看到了以下代码:

public class First()
{
      private Second _second;

      public First()
      {
          _second = new Second(this);
          // Doing some other initialization stuff,
      }

}

public class Second
{
    public Second(First f)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

First()构造函数中,我们First() 完全构造之前发送类的引用并不是很糟糕吗?我认为只有在控制逻辑离开构造函数时,对象才会完全构造.

或者这没关系?

c# constructor reference

63
推荐指数
3
解决办法
1655
查看次数

了解csproj程序集引用

我正在使用VS2010,我试图通过文件引用从本地硬盘添加一些程序集到我的C#项目.窥视csproj文件,我发现有时文件引用显示为

<Reference Include="name">
Run Code Online (Sandbox Code Playgroud)

但有时它看起来像

<Reference Include="name, Version=xxx, Culture=neutral, 
                                          processorArchitecture=MSIL">
Run Code Online (Sandbox Code Playgroud)

什么可能导致差异?


受到k3b答案的启发,我做了另一个测试.我创建了一个新的类库项目.

  1. 添加文件引用.的初始值特定版本属性面板是.该csproj文件看起来像

    <Reference Include="Name">
      <HintPath>...</HintPath>
    </Reference>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 更改特定版本属性窗格.VS在Include属性中添加版本.

    <Reference Include="Name, Version=...">
      <HintPath>...</HintPath>
    </Reference>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 更改特定版本属性窗格中一次.VS添加了一个子元素SpecificVersion.

    <Reference Include="Name, Version=...">
      <HintPath>...</HintPath>
      <SpecificVersion>False</SpecificVersion>
    </Reference>
    
    Run Code Online (Sandbox Code Playgroud)

所以似乎规则是:

  • 版本存在于包括属性,并且没有SpecificVersion子元素,该文件组件被配置为特定版本
  • SpecificVersion子元素只与价值附加.

有一点我还是不明白:

  • 对于我的新测试项目,如果我删除文件引用并再次添加它,它将返回到第1点的格式,这是默认值.
  • 对于我现有的项目,如果我删除文件引用并再次添加它,我会在第3点找回格式.虽然这也意味着没有使用特定版本,但我想知道为什么它不会回到第1点的格式.

c# reference csproj visual-studio-2010 .net-assembly

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