小编Dav*_*eis的帖子

DateTime与DateTimeOffset

目前,我们有一种以TimeZone感知方式处理.net DateTimes的标准方法:每当我们生成一个DateTimeUTC时(例如使用DateTime.UtcNow),每当我们显示一个时,我们就会从UTC转换回用户的本地时间.

这工作正常,但我一直在阅读DateTimeOffset它如何捕获对象本身的本地和UTC时间.所以问题是,使用DateTimeOffsetvs我们已经做的事情有什么好处?

.net c# timezone datetime datetimeoffset

669
推荐指数
10
解决办法
19万
查看次数

丢弃需要输出迭代器的函数的输出

假设C++中有一个模板函数可以完成一些有用的工作,但也可以通过输出迭代器输出一系列值.现在假设这个值序列有时很有趣,但在其他值上没有用.在STL中是否有一个可以实例化的迭代器类,它可以被实例化并传递给函数,并将忽略函数尝试分配给输出迭代器的任何值?换句话说,将所有数据发送到/ dev/null?

c++ iterator stl

20
推荐指数
2
解决办法
1498
查看次数

为属性setter或getter创建一个高性能的开放委托

open delegate是没有目标的实例方法的委托.要调用它,您需要提供目标作为其第一个参数.它们是优化代码的一种聪明方法,否则会使用反射并且性能较差.有关开放代表的介绍,请参阅此内容.你在实践中使用它的方法是使用昂贵的反射代码来构建这些开放的委托,但是你可以像一个简单的委托调用一样非常便宜地调用它们.

我正在尝试编写将任意PropertyInfo转换为其setter的委托的代码.到目前为止,我想出了这个:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;

namespace Test
{
    class TestClass
    {
        static Action<T, object> MakeSetterDelegate<T>(PropertyInfo property)
        {
            MethodInfo setMethod = property.GetSetMethod();
            if (setMethod != null && setMethod.GetParameters().Length == 1) //skips over nasty index properties
            {
                //To be able to bind to the delegate we have to create a delegate 
                //type like: Action<T,actualType> rather than Action<T,object>.
                //We use reflection to do that
                Type setterGenericType = typeof(Action<,>);
                Type delegateType = setterGenericType.MakeGenericType(new Type[] …
Run Code Online (Sandbox Code Playgroud)

c# reflection delegates

15
推荐指数
1
解决办法
4387
查看次数

perforce中的多个更改列表中的相同文件

有没有办法让同一个文件成为perforce中多个变更列表的一部分?我的意思是,从文件中的一组更改行中,一个子集将属于一个更改列表,而另一个子集将属于第二个更改列表.

奖金问题:如果perforce不支持这个,那么哪个源控制系统(如果有的话)呢?

version-control perforce

13
推荐指数
4
解决办法
6571
查看次数

为成对容器的第一个元素提供迭代器

我有一个装满对的容器.我想使用STL泛型算法迭代它(在我的情况下,它将是inner_product,但将其视为一般问题).我正在使用的算法首先要求使用迭代器.我可以首先提供特殊的迭代器,并且不会在对上迭代,而是在每对的第一个元素上迭代吗?

我知道我可以手动完成,提供一个手工制作的函数对象,它将成为标准容器迭代器的包装器,将它引用到该对中的第一个成员本身,但我认为还有一个聪明的-liner为我做这件事.会是什么?

c++ generics templates stl

9
推荐指数
1
解决办法
1509
查看次数

在unicode C++应用程序中解析命令行参数

如果应用程序是unicode,如何解析传递给应用程序的整数作为命令行参数?

Unicode应用程序有这样的主要:

int _tmain(int argc, _TCHAR* argv[])
Run Code Online (Sandbox Code Playgroud)

argv [?]是一个wchar_t*.这意味着我不能使用atoi.如何将其转换为整数?stringstream是最好的选择吗?

c++ unicode command-line

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

使用C或C++中的多个地址运算符初始化指针指针

它只是发生在我身上我不知道如何使用C++中的一个语句初始化指向非指针值的指针:

int a = 1;
int** ppa = &&a; //Does not compile
int** ppa = &(&a); //Does not compile
int* pa = &a;   //Works but is a
int** ppa = &pa; //Two step solution
Run Code Online (Sandbox Code Playgroud)

我错过了什么,是两个声明唯一的方法吗?

c c++

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

构建Visual Studio项目而无需访问引用的dll

我有一个项目,它有一组二进制依赖项(程序集dll,我没有源代码).在运行时,需要在机器上预安装这些依赖项,并且在编译时,它们在源代码树中是必需的,例如在lib文件夹中.由于我还为此程序提供了源代码,因此我想为其启用简单的下载和构建体验.不幸的是,我不能重新分配dll,这使事情变得复杂,因为VS不会在没有访问引用的dll的情况下链接项目.

反正是否有能够在没有真正引用的dll的情况下构建和链接这个项目?

也许这是一种告诉VS链接自动生成的dll存根的方法,以便它可以在没有原始的情况下重建?也许有第三方工具可以做到这一点?这个领域有任何线索或最佳实践吗?

我认识的人必须能够访问这些DLL运行的代码,因此它是有道理的,他可以将它们添加到构建过程,但我只是想救他们收集所有的dll文件,并把他们在痛苦lib文件夹手动.

.net c# assemblies stub visual-studio

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

浮动或双重特殊值

我有双(或浮点)变量,可能是"空",如没有有效值.如何使用内置类型float和double来表示这种情况?

一个选项是一个包含浮点数和布尔值的包装器,但这不起作用,因为我的库有容器存储双精度而不是表现为双精度的对象.另一个是使用NaN(std :: numeric_limits).但我认为无法检查变量是否为NaN.

如何解决需要"特殊"浮点值来表示数字以外的其他问题?

c++ floating-point double

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

XSLT输出中的&符号问题

我使用XSL将XML文档转换为.NET中的HTML.

XML中的一个节点有一个URL,应该作为HTML的HTML标记的href参数输出.当输入URL具有&符号(例如http://servers/path?par1=val1&par2=val2)时,&符号在输出HTML中显示为&amp;.

有什么方法可以解决这个问题吗?是disable-output-escaping解决方案吗?难道不会产生一大堆其他问题吗?

这是一个重现问题及其输出的代码示例:

输出:

<html>
  <body>
    <a href="http://servers/path?par1=val1&amp;par2=val2#section1" />
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

C#代码:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.Xml;
using System.Xml.Xsl;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {   
            XmlDocument xmlDoc = ComposeXml();
            XmlDocument styleSheet = new XmlDocument();
            styleSheet.LoadXml(XslStyleSheet);

            XmlTextWriter myWriter = new XmlTextWriter(Console.Out);
            myWriter.Formatting = Formatting.Indented;

            XslCompiledTransform myXslTrans = new XslCompiledTransform();
            myXslTrans.Load(styleSheet);
            myXslTrans.Transform(xmlDoc, null, myWriter);

            Console.ReadKey();
        }

        private const string XslStyleSheet =
@"<xsl:stylesheet version=""1.0"" …
Run Code Online (Sandbox Code Playgroud)

.net c# xslt

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