问题列表 - 第25863页

关于C#4.0的泛型协方差的问题

定义了这个接口:

public interface IInputBoxService<out T> {
    bool ShowDialog();
    T Result { get; }
}
Run Code Online (Sandbox Code Playgroud)

为什么以下代码有效:

public class StringInputBoxService : IInputBoxService<string> {
    ...
}

...

IInputBoxService<object> service = new StringInputBoxService();
Run Code Online (Sandbox Code Playgroud)

这不是吗?:

public class IntegerInputBoxService : IInputBoxService<int> {
    ...
}

...

IInputBoxService<object> service = new IntegerInputBoxService();
Run Code Online (Sandbox Code Playgroud)

与int是值类型有什么关系吗?如果是,我该如何规避这种情况?

谢谢

.net c# generics covariance

13
推荐指数
1
解决办法
745
查看次数

SQL-wrappers(activerecord)推荐用于python?

是否有一个用于python的activerecord(任何类似的SQL包装器)?这适合:

  • 用于服务器端python脚本
  • 重量轻的
  • 支持MySQL

我需要做什么:

  • insert(文件名,文件大小,文件md5,文件本身)到(string,int,string,BLOB)列中
  • 如果db中不存在相同的文件(校验和+文件名)

谢谢

python orm activerecord

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

为什么浮点字节交换与整数字节交换不同?

我有一个双打的二进制文件,我需要使用C++加载.但是,我的问题是它是用big-endian格式编写的,但是fstream >> operator会因为我的机器是little-endian而读错了.解决整数似乎是一个简单的问题,但对于双精度和浮点数,我找到的解决方案将无效.我怎么能(或应该)解决这个问题?

我把它读作整数字节交换的参考:
如何在C++中的big-endian和little-endian值之间进行转换?

编辑:虽然这些答案很有启发性,但我发现我的问题在于文件本身而不是二进制数据的格式.我相信我的字节交换确实有效,我只是得到了令人困惑的结果.谢谢你的帮助!

c++ endianness

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

Visual Studio 中的 fftw?

我正在尝试将我的项目与 fftw 链接,到目前为止,我已经编译它,但没有链接。正如该网站所说,我生成了所有 .lib 文件(即使我只使用双精度),并将它们复制到C:\Program Files\Microsoft Visual Studio 9.0\VC\lib,将 .h 文件复制到C:\Program Files\Microsoft Visual Studio 9.0\VC\include,将 .dll 文件复制到C:\windows\system32

我已经复制了教程程序,我得到的确切错误是:

1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_free referenced in function "bool __cdecl test(void)" (?test@@YA_NXZ)
1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_destroy_plan referenced in function "bool __cdecl test(void)" (?test@@YA_NXZ)
1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_execute referenced in function "bool __cdecl test(void)" (?test@@YA_NXZ)
1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_plan_dft_1d referenced in function …
Run Code Online (Sandbox Code Playgroud)

c++ linker-errors visual-studio fftw

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

jQuery按类计算元素; 实现这个的最佳方法是什么?

我想要做的是计算当前页面中具有相同类的所有元素,然后我将使用它添加到输入表单的名称.基本上我允许用户点击a <span>然后通过这样做添加另一个更多相同类型的项目.但我想不出用jQuery/JavaScript简单计算所有这些的方法.

我打算将项目命名为类似的东西name="whatever(total+1)",如果有人有一个简单的方法来做到这一点,我将非常感激,因为JavaScript不完全是我的母语.

javascript css jquery element

360
推荐指数
6
解决办法
40万
查看次数

事件处理程序触发两次而不是一次

对不起,我在几分钟内问过两个问题.

在一个html文件中,我在父DIV标记中有三个子DIV标记:

<div id="container">
   <div id="frag-123">123</div>
   <div id="frag-124">124</div>
   <div id="frag-125">125</div>
</div>
Run Code Online (Sandbox Code Playgroud)

现在当我点击三个子DIV标签时,我会看到弹出两个警告框而不是一个:第一个警告框将显示如下内容:frag-123,第二个警告框将显示如下内容:container

我不知道为什么.我只想获得子DIV的ID值,而不是父DIV的ID值.

<script>
$(function() {
     $("div").click(function() {
          var imgID = this.id;
          alert(imgID);
     });

}); 
</script>
Run Code Online (Sandbox Code Playgroud)

请帮忙.

javascript jquery

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

Java尝试最终的变化

这个问题困扰了我一段时间,但我还没有找到完整的答案(例如,这个是C#在try/finally之外或之内初始化一次性资源).考虑以下两个Java代码片段:

Closeable in = new FileInputStream("data.txt");
try {
    doSomething(in);
} finally {
    in.close();
}
Run Code Online (Sandbox Code Playgroud)

和第二种变化

Closeable in = null;
try {
    in = new FileInputStream("data.txt");
    doSomething(in);
} finally {
    if (null != in) in.close();
}
Run Code Online (Sandbox Code Playgroud)

令我担心的部分是线程可能在获取资源的时刻(例如文件被打开)之间有些中断,但结果值未分配给相应的局部变量.是否还有其他情况,线程可能会在上述点之外被中断,除了:

  1. 抛出InterruptedException(例如,通过Thread#interrupt())或抛出OutOfMemoryError异常
  2. JVM退出(例如通过kill,System.exit())
  3. 硬件失败(或JVM中的错误完整列表:)

我已经读到第二种方法有点"惯用",但IMO在上面的场景中没有区别,在所有其他场景中它们都是平等的.

所以问题是:

两者有什么不同?如果我担心释放资源(特别是在多线程应用程序中),我应该更喜欢哪个?为什么?

如果有人指出我支持答案的Java/JVM规范的部分,我将不胜感激.

java resources exception finally try-catch

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

如何在c#中调用返回类型为数组的函数

public CD[] GetCDCatalog()
{
    XDocument docXML =
    XDocument.Load(Server.MapPath("mydata.xml"));

    var CDs =
      from cd in docXML.Descendants("Table")
      select new CD
      {
          title = cd.Element("title").Value,
          star = cd.Element("star").Value,
          endTime = cd.Element("endTime").Value,

      };
    return CDs.ToArray<CD>();
}
Run Code Online (Sandbox Code Playgroud)

我在页面加载时调用此函数即.string [] arr = GetCDCatalog(); 但这是错误无法隐式转换类型'Calender.CD []'到'string []'请Suggetst我如何调用页面加载函数返回类型是数组.

c#

0
推荐指数
1
解决办法
8881
查看次数

SQL Server变量列名?

我想知道为什么我不能像这样使用变量列名:

declare @a as varchar;
set @a='TEST'

select @a from x;
Run Code Online (Sandbox Code Playgroud)

谢谢

t-sql sql-server

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

从登录 ID 获取用户 SID(Windows XP 及更高版本)

我有一个 Windows 服务,当用户在本地或通过终端服务器登录时,它需要访问 HKEY_USERS 下的注册表配置单元。我在 win32_logonsession 上使用 WMI 查询来接收用户登录时的事件,我从该查询中获得的属性之一是 LogonId。为了确定我需要访问哪个注册表配置单元,现在我需要用户的 SID,它用作 HKEY_USERS 下的注册表项名称。

在大多数情况下,我可以通过像这样(在 C# 中)执行 RelatedObjectQuery 来获得它:

RelatedObjectQuery relatedQuery = new RelatedObjectQuery( "associators of {Win32_LogonSession.LogonId='" + logonID + "'} WHERE AssocClass=Win32_LoggedOnUser Role=Dependent" );
Run Code Online (Sandbox Code Playgroud)

其中“logonID”是会话查询中的登录会话 ID。运行相关对象查询通常会给我一个包含我需要的 SID 属性。

我对此有两个问题。首先,也是最重要的一点,RelatedObjectQuery 不会为使用缓存凭据登录、与域断开连接的域用户返回任何结果。其次,我对这个 RelatedObjectQuery 的性能不满意 --- 它可能需要几秒钟才能执行。

这是一个快速而肮脏的命令行程序,我把它放在一起来试验查询。这只是枚举本地机器上的用户,而不是设置接收事件:

using System;
using System.Collections.Generic;
using System.Text;
using System.Management;

namespace EnumUsersTest
{
    class Program
    {
        static void Main( string[] args )
        {
            ManagementScope scope = new ManagementScope( "\\\\.\\root\\cimv2" );

            string queryString = "select * from win32_logonsession"; …
Run Code Online (Sandbox Code Playgroud)

.net c# windows wmi sid

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