小编tiv*_*adj的帖子

ValueType.GetHashCode的原生实现如何工作?

我创建了两个TheKey类型为k1 = {17,1375984}和k2 = {17,1593144}的结构.显而易见,第二个字段中的指针是不同的.但两者都得到相同的哈希码= 346948941.预计会看到不同的哈希码.请参阅下面的代码.

struct TheKey
{
    public int id;
    public string Name;

    public TheKey(int id, string name)
    {
       this.id = id;
       Name = name;
   }
}

static void Main() {
    // assign two different strings to avoid interning
    var k1 = new TheKey(17, "abc");
    var k2 = new TheKey(17, new string(new[] { 'a', 'b', 'c' }));

    Dump(k1); // prints the layout of a structure
    Dump(k2);

    Console.WriteLine("hash1={0}", k1.GetHashCode());
    Console.WriteLine("hash2={0}", k2.GetHashCode());
}

unsafe static void Dump<T>(T s) …
Run Code Online (Sandbox Code Playgroud)

c# hash struct

39
推荐指数
2
解决办法
6769
查看次数

重构C/C++工具的原因非常有限

没有创建用于C/C++的工业级重构工具的问题是什么,我只需要一个"正常工作"的工具?

我所说的"工业级"是由JetBrains产品(IntelliJ,ReSharper)或以上产品提供的.任何可用的解决方案(包括Tomato Software或Eclipse CDT的 Visual Assist )都不够成熟.

以下是初创公司推动此类项目的优势.

  • 缓解C++无聊语法(使开发更有趣);
  • C++正在发展(0x版本即将到来,因此这些工具实现者需要做很多工作);
  • 营销利基比其他任何东西都广泛(许多书面C++代码,许多活跃的C++项目),甚至考虑到Web(HTML/JavaScript)项目;
  • C++是针对系统问题而选择的,其中工具在编译时发现的每个bug都是生存的(许多公司或政府应该感兴趣);
  • 这样的工具可以减少项目编制时间;

唯一的缺点是技术挑战......但看看谷歌,微软,英特尔等正在做什么,应该没有无法解决的技术问题.

    让我们总结一下:
  1. 可以实施这样的产品
  2. 这是非常有利可图的
  3. 它不存在

没有人想赚钱?合谋;)?什么是原因?

c++ refactoring

12
推荐指数
3
解决办法
1733
查看次数

Rust泛型中的常量值

Rust语言是否支持类似于c ++方式的通用代码中的常量值?似乎语言概述不会宣传它.使用C++中的常量参数化类型允许根据客户端的需要(类似stlsoft :: auto_buffer)创建具有不同大小的预分配缓冲区的对象.
如果没有,那么在Rust中实现类似设计的最佳实践是什么?

rust

7
推荐指数
1
解决办法
2049
查看次数

标签 统计

c# ×1

c++ ×1

hash ×1

refactoring ×1

rust ×1

struct ×1