小编Pat*_*ick的帖子

shared_ptr:它用于什么

我在我的代码中大量使用了boost :: scoped_ptr,它很棒,但我目前正在使用整个地方使用shared_ptr的软件,我想知道我是否遗漏了一些东西.

AFAIK a shared_ptr仅在不同的线程要访问相同的数据并且您不知道线程将完成的顺序时才有用(使用shared_ptr确保对象存在,直到最后一个线程完成它为止).

还有其他用例吗?

c++ boost raii shared-ptr

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

在sql查询中使用.net Datetime

我有一个DateTime对象,我想与where子句中的sql datetime字段进行比较.我目前正在使用:

"where (convert( dateTime, '" & datetimeVariable.ToString & "',103) <= DatetimeField)"
Run Code Online (Sandbox Code Playgroud)

但我相信datetimeVariable.ToString将返回一个不同的值,具体取决于系统运行的文化.

你会如何处理这一点,因此它与文化无关?

编辑:我不会在这段代码中使用paramatised sql ...

编辑:按照Parmesan对其中一个答案的评论看起来最好的方法可能是:

"where (convert( dateTime, '" & datetimeVariable.ToString( "s" ) & "',126) <= DatetimeField)"
Run Code Online (Sandbox Code Playgroud)

.net c# sql vb.net datetime

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

多次选择top(x)

对不起,垃圾标题,但希望这将解释:

鉴于表

 name     |   data
---------------------
   1      |   1000
   1      |   2000
   1      |   3000
   2      |   1500
   2      |   2500
   2      |   3500
Run Code Online (Sandbox Code Playgroud)

我希望能够为数据值排序的所有名称选择顶部(x).因此,如果x = 2,则返回

 name     |   data
---------------------
   1      |   2000
   1      |   3000
   2      |   2500
   2      |   3500
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008

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

可以返回值和引用类型对象的通用函数

我有一个辅助函数来从XML获取值,它可以正常使用像int这样的值类型和字符串.我还有一些类将XPathNavigator作为其构造函数中的参数,我想做类似以下的事情:

    public static void SelectSingleNodeSafe<T>(XPathNavigator nav, string pos, out T ret, T def)
    {
        XPathNavigator node = nav.SelectSingleNode(pos);
        if (node != null)
            if (typeof(T).IsSubclassOf(XMLConstructible))
                ret = new T(node);// this won't compile
            else
                ret = (T)node.ValueAs(typeof(T));//this works for my use cases
        else
            ret = def;
    }
Run Code Online (Sandbox Code Playgroud)

有遗嘱但有办法吗?

c# generics

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

将std :: find_if与std :: string一起使用

我在这里很傻但是在迭代字符串时我无法获得谓词的函数签名:

bool func( char );

std::string str;
std::find_if( str.begin(), str.end(), func ) )
Run Code Online (Sandbox Code Playgroud)

在这种情况下谷歌不是我的朋友:(有人在这里吗?

c++ stl

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

没有HTTP的SSL

所有,

可以使用IIS(或类似的)来处理https通信的ssl端.是否有类似的东西可以处理TCP/IP消息的ssl端?

基本上我有一个客户端设备通过TCP连接发送非http消息,并希望服务器能够为我处理SSL的加密和证书端,并将纯文本转发到另一台服务器.

openSSL s_server命令似乎是正确的,但是文档声明"它仅用于测试目的",而我需要强大的东西.文件是否过时了?

谢谢,帕特里克

ssl openssl

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

如何两次插入到临时表中

我已经选择了类似以下的SQL:

IF EXISTS(SELECT name FROM tempdb..sysobjects WHERE name Like N'#tmp%'
 and id=object_id('tempdb..#tmp'))
DROP TABLE #tmp

into #tmp
select * from permTable
Run Code Online (Sandbox Code Playgroud)

我需要在继续处理之前向#tmp添加更多数据:

insert into #tmp
select * from permTable2
Run Code Online (Sandbox Code Playgroud)

但这会产生错误,因为SQL假设#tmp列的大小和类型(例如,如果permTable有一个列为int的列,但permTable2的列具有相同的名称但在一个记录中有一个NULL,则"无法将值插入列中" IsPremium',表'tempdb.dbo.#tmp").

如何让#tmp拥有我想要的类型?这真是不好的做法吗?

sql sql-server-2008

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

在派生类中声明的类型的抽象属性?

是否可以使用一个抽象属性来返回派生类中定义的类型:

abstract class baseClass
{
    public abstract e_Type type { get; }
}

class derived : baseClass
{
    public enum e_Type
    {
        type1,
        type2
    }

    private e_Type _type;
    public e_Type type { get { return _type; } }
}
Run Code Online (Sandbox Code Playgroud)

或者我必须返回一个int并将其映射到派生类中.欢迎任何其他建议.

c# abstract-class

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

将命名空间传递给函数

我有一个函数,它接受一个word文档并以html格式保存.我想使用相同的函数来处理任何文档类型.由于Jon Skeet指出,我尝试使用泛型(我假设不同的doc API是相同的)失败了.还有另外一种方法吗?

using Word = Microsoft.Office.Interop.Word;
using Excel = Microsoft.Office.Interop.Excel;

//Works ok
private void convertDocToHtm( string filename )
{
... snip

     var app = new Word.Application();
     var doc = new Word.Document();
     doc = app.Documents.Open(ref fileName, ref missing, ref trueValue, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

... snip    
}

//fails dismally (to compile) because 'T' is a 'type parameter', which …
Run Code Online (Sandbox Code Playgroud)

.net c# ms-office office-interop

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

单元测试时替代java访问的替代方法

我正在尝试用一些私有方法对一个类进行单元测试.每种私有方法都可以相当广泛.

我可以使方法包作用域(导致警告),或者我可以使用下面的代码来测试它:

Method method = instance.getClass().getDeclaredMethod("methodName");
method.setAccessible(true);
Object object = method.invoke(instance);
assertNotNull(object);
Run Code Online (Sandbox Code Playgroud)

这个类不是"上帝对象",它的大部分方法都涉及它的所有领域.

关于如何更好地处理这个问题的任何建议?

junit unit-testing private-members

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