我是PowerShell和TFS cmdlet的新手,我正在尝试检索区域路径中的变更集列表及其关联的工作项.
自某个日期以来,我已经列出了变更集:
Get-TfsItemHistory "$/Project/Branch" -Version “D01/12/10~” -Recurse
Run Code Online (Sandbox Code Playgroud)
并且从同一天开始列出工作项:
Get-TfsItemHistory "$/Project/Branch" -Version "D01/12/10~" -Recurse | %{ $_.workitems }
Run Code Online (Sandbox Code Playgroud)
每个查询返回相同数量的结果,第二个查询返回重复的工作项.这似乎很有希望,因为工作项目有很多变化,所以我认为我结合起来并不遥远.
TFS支持查询标签,但我找不到创建TFS工作项查询的方法来返回没有标签或任何标签的结果.
无法对TFS Web访问中的Tag列进行排序,因此我甚至无法返回所有工作项,然后对列进行排序以关注具有标记的那些和没有标记的那些.
例如,我希望看到以下标签值的外卡或任何外卡:

在C#中,我有一个类层次结构,顶部附近有几个抽象基类,并有相当数量的派生类.这些具体类中的一些具有一些相同实现的共同属性和方法.它让我感到浪费,因此一种解决方案可能是在另一个抽象基类中实现这种常见行为.
abstract class Control;
abstract class SquareControl: Control
{
public int SquarishProperty;
public void SquarishMethod();
};
class Window: SquareControl;
class Button: SquareControl;
Run Code Online (Sandbox Code Playgroud)
但是,如果层次结构中的其他几个类共享某些其他行为,但是与另一个基类中的一个控件共享某些内容,该怎么办?也许有很多共同点.使用抽象基类实现对它进行建模是不切实际的吗?
abstract class FlashableControl: Control
{
public int FlashyProperty;
public void FlashMethod();
};
class StatusBar: FlashableControl; // but it's also a bit square too, hmm...
Run Code Online (Sandbox Code Playgroud)
那么如何在不使用基类的情况下跨类共享这样的实现呢?
我想我想将接口的实现委托给另一个类,并让该类代表所需的类实现这些属性和方法,这样对于用户来说,StatusBar和Window似乎支持标准接口,但是在涵盖它是实现它的其他东西.
我可以想象实现这种行为的聚合类,但这是否适当,是否有任何陷阱?有哪些替代方案?
谢谢
我正在使用std :: stringstream将固定格式字符串解析为值.但是,要解析的最后一个值不是固定长度.
要解析这样的字符串,我可能会这样做:
std::stringstream ss("123ABCDEF1And then the rest of the string");
ss >> std::setw(3) >> nId
>> std::setw(6) >> sLabel
>> std::setw(1) >> bFlag
>> sLeftovers;
Run Code Online (Sandbox Code Playgroud)
但是如何设置宽度以便输出字符串的其余部分?
通过反复试验,我发现这样做有效:
>> std::setw(-1) >> sLeftovers;
Run Code Online (Sandbox Code Playgroud)
但是正确的方法是什么?
似乎SQLPLUS以一种我没想到的方式显示了CLOB的空值和空字符串.
在SQLPLUS中尝试以下内容(我使用的是Oracle 10g服务器).创建一个包含CLOB的表,并插入null,空clob,以及我认为的空字符串:
create table tableA (field1 number, field2 clob);
insert into tableA values (1, null);
insert into tableA values (2, empty_clob());
insert into tableA values (3, '');
Run Code Online (Sandbox Code Playgroud)
好吧,让我们做一些查询,但首先我们需要告诉SQLPLUS为我们清楚地显示空值:
set null {NULL}
Run Code Online (Sandbox Code Playgroud)
对于以下查询,我原本只期望返回第1行,但它返回2:
select * from tableA where field2 is null;
field1 field 2
-----------------------
1 {NULL}
3 {NULL}
Run Code Online (Sandbox Code Playgroud)
嗯,所以''在CLOB中存储为null?
好的,基于该结果,我现在希望以下查询返回所有3行,但仅显示{NULL}在行1和3中.但是我得到了这个结果:
select * from tableA;
field1 field 2
-----------------------
1 {NULL}
2 {NULL}
3 {NULL}
Run Code Online (Sandbox Code Playgroud)
这令人困惑.我以为只有2个空值,即使我最初预期为1.那么这里发生了什么?是否set null为CLOB的不行,如果是的话我应该怎么用呢?
我实际上试图用空的CLOB值来解决一个不同的问题,但是这种令人困惑的行为让我运行了一段时间的响铃,所以我想在继续之前理解这一点.
提前致谢
博兹