我在我的代码中大量使用了boost :: scoped_ptr,它很棒,但我目前正在使用整个地方使用shared_ptr的软件,我想知道我是否遗漏了一些东西.
AFAIK a shared_ptr仅在不同的线程要访问相同的数据并且您不知道线程将完成的顺序时才有用(使用shared_ptr确保对象存在,直到最后一个线程完成它为止).
还有其他用例吗?
我有一个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) 对不起,垃圾标题,但希望这将解释:
鉴于表
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) 我有一个辅助函数来从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)
有遗嘱但有办法吗?
我在这里很傻但是在迭代字符串时我无法获得谓词的函数签名:
bool func( char );
std::string str;
std::find_if( str.begin(), str.end(), func ) )
Run Code Online (Sandbox Code Playgroud)
在这种情况下谷歌不是我的朋友:(有人在这里吗?
所有,
可以使用IIS(或类似的)来处理https通信的ssl端.是否有类似的东西可以处理TCP/IP消息的ssl端?
基本上我有一个客户端设备通过TCP连接发送非http消息,并希望服务器能够为我处理SSL的加密和证书端,并将纯文本转发到另一台服务器.
openSSL s_server命令似乎是正确的,但是文档声明"它仅用于测试目的",而我需要强大的东西.文件是否过时了?
谢谢,帕特里克
我已经选择了类似以下的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拥有我想要的类型?这真是不好的做法吗?
是否可以使用一个抽象属性来返回派生类中定义的类型:
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并将其映射到派生类中.欢迎任何其他建议.
我有一个函数,它接受一个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) 我正在尝试用一些私有方法对一个类进行单元测试.每种私有方法都可以相当广泛.
我可以使方法包作用域(导致警告),或者我可以使用下面的代码来测试它:
Method method = instance.getClass().getDeclaredMethod("methodName");
method.setAccessible(true);
Object object = method.invoke(instance);
assertNotNull(object);
Run Code Online (Sandbox Code Playgroud)
这个类不是"上帝对象",它的大部分方法都涉及它的所有领域.
关于如何更好地处理这个问题的任何建议?