问题列表 - 第39390页

在静态上下文中使用泛型类型

public static BTNode<E> treeCopy(BTNode<E> source)
{
     if(source == null)
         return null;
     else
     {
         BTNode left = BTNode.treeCopy(source.left);
         BTNode right = BTNode.treeCopy(source.right);
         return new BTNode(source.data, left, right);
     }

}
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么我不能在静态上下文中使用泛型Type E?我试过搜索几个答案找不到任何让他们嗤之以鼻.

java generics static

21
推荐指数
2
解决办法
5132
查看次数

Debugger Visualizer生成Object Initializer代码

我们有一个需要修复的bug,就像任何优秀的TDD从业者一样,我想编写一个失败的测试来代表bug.该错误在一个方法中,它采用相当复杂的类型作为输入.只有当复杂类型具有特定的属性值组合时,该错误才会重现.

到目前为止,我已经重现了该错误,并且在调试器中,可以查看复杂类型的运行时值.现在我需要在单元测试的"排列"部分中创建该复杂类型,以便我可以将其提供给单元测试的"Act"部分中的buggy方法.

我可以手工编写一个大对象初始化代码块,如下所示:

var cats =
    new List<Cat>
        {
            new Cat {Name = "Sylvester", Age = 8},
            new Cat {Name = "Whiskers", Age = 2}
        };
Run Code Online (Sandbox Code Playgroud)

甚至是这样的:

var cats = new List<Cat>();
var cat1 = new Cat();
cat1.Name = "Sylvester";
cat1.Age = 8;
cats.Add(cat1);
var cat2 = new Cat();
cat2.Name = "Whiskers";
cat2.Age = 2;
cats.Add(cat2);
Run Code Online (Sandbox Code Playgroud)

没有什么花哨的.唯一的问题是"手工"部分 - 在我的情况下复杂类型并不像上面的例子那样微不足道.

我还可以在调试器中使用任何内置调试器可视化工具查看对象.所以我想我会编写一个自定义Debugger Visualizer,它将为我生成对象初始化代码.要使用它,我会在调试器中重现该问题,拉出QuickWatch窗口并选择我的自定义可视化工具.

另一种选择是编写一个自定义序列化实现,它将"序列化"到一个对象初始化代码块.使用它比仅仅拉动QuickWatch窗口要困难一些,但这可能有效.

在我自己解决这个问题之前,有没有人做过这样的事情?介意分享一个代码片段?或者有人会建议另一种方法吗?

PS在我的例子中,对象的类型是抽象基类的子类.只是想提一下.

c# debugging unit-testing debuggervisualizer visual-studio

12
推荐指数
2
解决办法
1668
查看次数

输入中的"保护"文本框值(HTML表单)

我想知道是否可以为HTML文本框分配值并保护它.

我的意思是让它的内容不可修改,以便当表单被提交时,我确定这是提交的这个值.

顺便说一下,我意识到更简单的方法就是不要"听"这个输入并只是分配它,但是能够做到上面说明的事情会派上用场.

我希望这个问题很清楚,请提出任何必要的澄清.

提前致谢!

编辑:我当然不够清楚,但我试图表示我应该在提交后保留该值(在客户端不可修改)

html forms protected assign

5
推荐指数
2
解决办法
3万
查看次数

在javascript中解码十六进制字符串

我在这个格式的JS中有一个字符串:

HTTP\X3A\X2F\x2fwww.url.com

如何从中获取解码后的字符串?我尝试了unescape(),string.decode,但它没有对此进行解码.如果我在浏览器中显示该编码字符串它看起来很好(http://www.url.com),但我想在显示它之前操纵该字符串.

谢谢.

javascript

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

Java中的版本

我必须管理Java构建,我不知道如何最好地管理软件的版本,以便它可以显示在一个关于对话框等.

你们是怎么做到的?我们正在使用Maven,我可以以某种方式重用pom.xml中定义的版本吗?我也有兴趣知道Ant通常是如何完成的.

java ant version maven

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

从价格中删除美元符号

我正在构建一系列金额,但需要删除美元符号.我有这个jQuery代码:

  buildList($('.productPriceID > .productitemcell'), 'pricelist')
Run Code Online (Sandbox Code Playgroud)

它正在回归

pricelist=$15.00,$19.50,$29.50
Run Code Online (Sandbox Code Playgroud)

我需要删除美元符号,但似乎无法弄明白.尝试使用.trim,但我认为只删除空格.

对不起新手问题!在此先感谢您的帮助!

这是完整的代码:

function buildList(items, name) {
var values = [];
items.each(function() {
values.push(this.value || $(this).text());
});
return name + '=' + values.join(',');
}

var result = [
buildList($('.productCodeID > .productitemcell'), 'skulist'),
buildList($('.productQuantityID > .productitemcell > input'), 'quantitylist'),
buildList($('.productPriceID > .productitemcell'), 'pricelist')
];

var string = result.join('&');
Run Code Online (Sandbox Code Playgroud)

这是javascript运行之前的原始代码

<span class="productPriceID">
<div class="productitemcell">$15.00</div>
<div class="productitemcell">$19.50</div>
<div class="productitemcell">$29.50</div>
</span>
Run Code Online (Sandbox Code Playgroud)

javascript regex string

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

javascript - 事件驱动和并发问题?

问候,

我一直在研究javascript,nodejs.我不明白如何在javascript中避免并发问题.

让我们说我正在研究一个物体

var bigObject = new BigObject();
Run Code Online (Sandbox Code Playgroud)

我有一个setTimer(function(){ workOnBigOjbect...} )也会做的工作bigOjbect.

如果我正在写入磁盘IO bigObject,并且计时器对象正在处理bigObject,并且定期进行代码读取bigObject,那么如何避免并发问题?

在常规语言中,我将使用互斥或​​线程安全队列/命令模式.我也没有看到很多关于javascript竞争条件的讨论.

我错过了什么吗?

javascript concurrency race-condition node.js

8
推荐指数
1
解决办法
3757
查看次数

寻找解决方案,使DataGridView控件无法绑定到分层(OO)数据

看起来DataGridView控件只能绑定到平面的数据源(所有属性都是主要类型).我的数据是分层的.例如:

    interface INestedObj
{
    string Prop3 { get; }
}

interface IParentObj
{
    public string Prop1 { get; }
    public string Prop2 { get; }
    public INestedObj NestedObj { get; }
}
Run Code Online (Sandbox Code Playgroud)

鉴于此,如何绑定到实现IParentObj的对象?最终你面临着必须做这样的事情:

grid.Columns["prop1Col"].DataPropertyName = "Prop1";
grid.Columns["prop2Col"].DataPropertyName = "Prop2";

grid.Columns["prop3Col"].DataPropertyName = "How to display Prop3?";

grid.Columns["prop3Col"].DataPropertyName = "NestedObj.Prop3"; // does not work
Run Code Online (Sandbox Code Playgroud)

我正在寻找建议和/或解决方法.

TIA

data-binding controls winforms

5
推荐指数
2
解决办法
2103
查看次数

强制标签与其标记的输入内联

我需要标签与它们标记的输入字段保持在同一行.我希望这些元素像通常在窗口调整大小时那样流动,我只想让标签贴在他们标记的输入的左侧.我该怎么办?有任何想法吗?

<label for="id1">label1:</label>
<input type="text" id="id1"/>
<label for="id2">label2:</label>
<input type="text" id="id2"/>
Run Code Online (Sandbox Code Playgroud)

答案:Josiah Ruddell的答案是在正确的道路上,使用跨度代替div给了我正确的行为.谢谢!

<span style="white-space:nowrap">
    <label for="id1">label1:</label>
    <input type="text" id="id1"/>
</span>
<span style="white-space:nowrap">
    <label for="id2">label2:</label>
    <input type="text" id="id2"/>
</span>
Run Code Online (Sandbox Code Playgroud)

css label input

34
推荐指数
2
解决办法
10万
查看次数

界面早期/晚期绑定.Net

在Wagner的" Effective C# "第23项中,他解释说

接口方法不是虚拟的......它们是具体实现的声明.

我发现这是一个难题,因为它意味着接口方法代表早期绑定,但它们具有后期绑定的行为.它唤起人们对它们如何在幕后工作的好奇心.在C++中,这将变成对vtable的讨论.在C#中,我不知道它变成了什么.有人可以说出来吗?

ps这个问题有堂兄,但这个问题主要关注界面.
请不要担心"你不需要知道它是如何工作的".再次,这是关于好奇心.

.net c# clr binding interface

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