小编Arn*_*und的帖子

如何在不进行转换的情况下指定短的int文字?

有没有办法指定我的变量是一个短整数?我正在寻找类似于M后缀的小数字.对于小数,我不必说

var d = (decimal)1.23;
Run Code Online (Sandbox Code Playgroud)

我可以写如下:

var d = 1.23M;
Run Code Online (Sandbox Code Playgroud)

有没有办法写这个

   var s  = SomeLiteralWithoutCast
Run Code Online (Sandbox Code Playgroud)

所以s暗示是短的int?

c# c#-4.0

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

如何将数组列表转换为多维数组

我需要将以下集合转换为double [,]:

 var ret = new List<double[]>();
Run Code Online (Sandbox Code Playgroud)

列表中的所有数组都具有相同的长度.最简单的方法,ret.ToArray()产生double [] [],这不是我想要的.当然,我可以手动创建一个新数组,并在循环中复制数字,但是有更优雅的方式吗?

编辑:我的库是从另一种语言Mathematica调用的,该语言尚未在.Net中开发.我不认为该语言可以利用锯齿状数组.我必须返回一个多维数组.

c# linq jagged-arrays multidimensional-array

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

如何从我的C++/CLI代码进入非托管C++库

我的解决方案中有以下三个项目:1.C#库2. C++/CLI托管代码3. C++非托管代码

我在我的C#项目中检查了"启用非托管代码调试",并在Debug/Win32中构建了两个C++项目.但是,我无法进入非托管代码 - 当我在调用任何非托管方法的F11时,它会显示一些随机/错误代码然后退出.

因为我的单元测试通过了,所以我知道我的非托管代码确实执行了.

我错过了什么?

c# c++ unmanaged c++-cli visual-studio-2008

12
推荐指数
1
解决办法
5879
查看次数

如何在托管C++中捕获非托管C++异常

我正在一个大型非托管C++库和一个大型C#库上开发一个瘦托管C++包装器.我需要捕获源自该大型非托管C++库的错误,并将它们重新抛出为Clr异常.非托管库抛出以下类的实例:

Error::Error(const std::string& file, long line,
             const std::string& function,
             const std::string& message) {
    message_ = boost::shared_ptr<std::string>(new std::string(
                                  format(file, line, function, message)));
}

const char* Error::what() const throw () {
    return message_->c_str();
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经想出了这个:

try{
// invoke some unmanaged code
}
catch(Object*)
{
throw gcnew System::Exception("something bad happened");
}
Run Code Online (Sandbox Code Playgroud)

如何从Error类中提取消息并将其转换为Clr String类,以便我可以将它传递给gcnew System :: Exception()构造函数?如果非托管代码抛出其他内容,我的catch块会抓住它吗?

编辑:我正在使用catch(Object*),因为在MCDN中建议使用它

.net c# error-handling c++-cli

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

为什么有些类型没有文字修饰符

例如,为什么long int有一个文字修饰符,但是short int不是?我指的是这个网站上的以下问题:C#编译器编号文字

通常,C#似乎是一种设计良好且一致的语言.可能有一个强有力的理由为某些类型提供文字修饰符,但不是所有类型.它是什么?

c# literals

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

如何使用泛型来开发适用于双精度和小数的代码

以下代码非常重复:

 public static double Interpolate(double x1, double y1, double x2, double y2, double x)
    {
        return y1 + (x - x1) * (y2 - y1) / (x2 - x1);
    }
    public static decimal Interpolate(decimal x1, decimal y1, decimal x2, decimal y2, decimal x)
    {
        return y1 + (x - x1) * (y2 - y1) / (x2 - x1);
    }
Run Code Online (Sandbox Code Playgroud)

但是,我尝试使用泛型不会编译:

 public static T Interpolate<T>(T x1, T y1, T x2, T y2, T x)
    {
        return y1 + (x - x1) …
Run Code Online (Sandbox Code Playgroud)

c# c#-4.0

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

使用不同的凭据运行NUnit集成测试

我正在使用C#,NUnit和SQL Server 2008 r2 dev版数据库运行集成测试.设置我的夹具包括创建一个新数据库和加载测试数据,所以我需要dbo权限.

但是,我希望以较少的权限运行测试.我有另一个我可以通过身份验证的AD帐户,我可以使用模拟运行一些T-SQL ,如下所述:http://support.microsoft.com/?scid = 306158,如下所示:

public static bool ExecuteFileAs(string fileName, string connectionString, 
                                  string user, string domain, string password)
{
    using(new Impersonator(user, domain, password))
    {
        using(var connection = new SqlConnection(connectionString))
        {
            connection.Open();
            return SqlFileExecuter.RunSql(connection, fileName);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我点击此代码段内的断点并启动Profiler时,我看到另一个连接以我提交给它的用户名打开,因此模拟确实有效.不幸的是,我无法在夹具设置结束时运行所有模拟测试,并在夹具拆卸时结束它.在设置结束时,我执行以下操作:

        impersonator = new Impersonator("username", "DOMAIN", "pwd");
Run Code Online (Sandbox Code Playgroud)

第一次单元测试开始后,我收到此错误列出了此测试中使用的一个dll:System.IO.FileLoadException: Could not load file or assembly '...' or one of its dependencies. Access is denied. 我已经授予其他帐户完全访问该目录的所有二进制文件,这没有帮助.

欢迎任何建议.

编辑:我的工作站仍在运行XP.

c# sql-server impersonation nunit unit-testing

5
推荐指数
1
解决办法
1738
查看次数

如何配置git以在提交中包含我的名字

我已按照以下方式设置了我的姓名和电子邮件

git config --global user.name myname
Run Code Online (Sandbox Code Playgroud)

但是,当我在提交后运行git log时,它显示unknown而不是myname:

Author: unknown <myname@mybox.mycompany.com>
Run Code Online (Sandbox Code Playgroud)

如何通过log命令列出我的名字?

编辑:config -l的输出如下:

core.symlinks=false
core.autocrlf=false
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
gui.recentrepo=C:/Git/MyProject
core.editor='C:\Program Files (x86)\Notepad++\notepad++.exe' -multiInst -notabbar -nosession -noPlugin
core.autocrlf=false
user.name=myalias
user.email=myalias@MYDOMAIN.com
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
core.hidedotfiles=dotGitOnly
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=git@git:myproject.git
branch.master.remote=origin
branch.master.merge=refs/heads/master
Run Code Online (Sandbox Code Playgroud)

编辑:开始赏金.

编辑2:实际上,命令行中的git commit包含了我的名字,但是TortoiseGit没有这样做.所以这是TortoiseGit的一个问题.

git version-control tortoisegit

5
推荐指数
1
解决办法
3611
查看次数

如何查找使用大多数内存进行排序的查询

如何确定哪些查询对排序/连接/等使用的内存最多?如何确定一个特定查询占用多少内存?

我希望找到类似SET STATISTICS IO ON的个人查询,以及DMV找出最坏的罪犯,但我找不到任何东西.

sql-server sql-server-2008-r2

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

为什么实现内部接口的方法必须公开

我正在开发一个实现内部接口的内部类.任何人都可以解释为什么我不能将我的方法声明为内部,为什么我收到以下错误:"无法实现接口成员,因为它不公开".

我知道我必须将该方法声明为公开,但这对我来说绝对没有意义.

如果接口和类都是内部的,那么声明方法是公共的有什么意义呢?这不是误导吗?

在这个网站上看过一个相关的问题.这不完全是重复的,因为我的班级是内部的.

c# c#-4.0

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