问题列表 - 第20077页

在C++/CLI中实现IEnumerable <T>

IEnumerable<T>在C++/CLI中的自定义集合类中实现时遇到问题.以下是代码的相关部分:

using namespace System::Collections::Generic;

ref class MyCollection : IEnumerable<MyClass^>
{
public:
    MyCollection()
    {
    }  

    virtual IEnumerator<MyClass^>^ GetEnumerator()
    {
        return nullptr;
    }
};
Run Code Online (Sandbox Code Playgroud)

编译时,会导致以下错误:

错误C2392:'System :: Collections :: Generic :: IEnumerator ^ MyCollection :: GetEnumerator(void)':托管类型不支持协变返回类型,否则'System :: Collections :: IEnumerator ^ System :: Collections :: IEnumerable :: GetEnumerator(void)'将被覆盖错误C3766:'MyCollection'必须提供接口方法'System :: Collections :: IEnumerator ^ System :: Collections :: IEnumerable :: GetEnumerator(void)'的实现

这是有道理的,因为IEnumerable<T>源于IEnumerable.但是,我不确定如何修复此编译错误.如果这是C#,我会隐式实现IEnumerable,但是我不知道如何在C++/CLI(如果可能的话)中这样做:

class MyCollection : IEnumerable<MyClass>
{
    public MyCollection()
    {
    }

    public IEnumerator<MyClass> GetEnumerator()
    { …
Run Code Online (Sandbox Code Playgroud)

.net c++-cli

14
推荐指数
2
解决办法
9200
查看次数

自动验证一些线程限制?(C#)

我们的代码库在注释中编码了很多线程限制 - 例如:

  • 这个类是线程安全的(可以从任何线程安全地访问所有公共方法)
  • 必须锁定"xyz"才能访问/调用任何公共成员
  • 只能从线程"xyz"访问(通常但不总是指GUI线程)
  • 如果两者都需要,必须在锁定"xyz"后进行此锁定

前三个可以在班级和个人成员中看到.

我已经搜索了任何可以至少部分验证满足这些约束的解决方案.我意识到自动完成这一过程存在很大的局限性,但即使是工具的一点帮助也会有所帮助.我找不到任何东西.

你能建议一个沿着这些方向做某事的工具吗?也许是一个FxCop规则集,通过将上述限制编码为属性来工作?

c# multithreading fxcop

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

为什么我必须制作这个数组的可变副本?

Apple提供了这个例子:

NSError *error;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults == nil) {
    // Handle the error
}
Run Code Online (Sandbox Code Playgroud)

他们为什么在这里调用mutableCopy?是因为他们希望有一个NSMutableArray而不是NSArray,以便稍后编辑/更改它?还是有其他原因吗?

iphone macos cocoa cocoa-touch core-data

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

大多数Pythonic连接字符串的方法

鉴于这个无害的小清单:

>>> lst = ['o','s','s','a','m','a']
Run Code Online (Sandbox Code Playgroud)

我的目标是使用以下方法之一以pythonically方式连接小恶魔:

A.普通ol'用于完成工作的字符串函数,简短,无需导入

>>> ''.join(lst)
'ossama'
Run Code Online (Sandbox Code Playgroud)

B. lambda,lambda,lambda

>>> reduce(lambda x, y: x + y, lst)
'ossama'
Run Code Online (Sandbox Code Playgroud)

C.全球化(什么都不做,导入一切)

>>> import functools, operator
>>> functools.reduce(operator.add, lst)
'ossama'
Run Code Online (Sandbox Code Playgroud)

请建议其他pythonic方法来实现这项宽宏大量的任务.

请排名(pythonic级别)和评级解决方案给出简明的解释.

在这种情况下,最pythonic解决方案是最好的编码解决方案吗?

python concatenation

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

WIX C++自定义操作

我有一个基本的WIX自定义操作:

        UINT __stdcall MyCustomAction(MSIHANDLE hInstaller)
        {   
            DWORD dwSize=0;
            MsiGetProperty(hInstaller, TEXT("MyProperty"), TEXT(""), &dwSize);
            return ERROR_SUCCESS;
        }
Run Code Online (Sandbox Code Playgroud)

添加到安装程序:

   <CustomAction Id="CustomActionId" FileKey="CustomDll" DllEntry="MyCustomAction"/>
   <InstallExecuteSequence>
       <Custom Action="CustomActionId" Before="InstallFinalize" />
   </InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)

问题是,无论我做什么,句柄hInstaller都无效.我已将动作设置为commit,deferred,在InstallExecute序列中更改了位置,hInstaller始终无效.

任何帮助,将不胜感激.谢谢.

c++ custom-action wix name-decoration

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

如何将OpenID集成到GlassFish中?

我想将OpenID作为身份验证机制集成到GlassFish 3.1(预览版)中.该开发指南说,JSR 196可以用来实现诸如定制的OpenID身份验证机制.

是否已经有符合JSR 196的GlassFish OpenID身份验证器?或者是否有一个教程如何写一个(在博客圈的某个地方)?

java openid authentication glassfish jsr196

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

在C#中创建只读数组的最佳方法是什么?

我有一个非常不可能和原始的情况想要从我的财产返回一个只读数组.到目前为止,我只知道一种方法 - 通过System.Collections.ObjectModel.ReadOnlyCollection<T>.但这对我来说似乎有些尴尬,更不用说这个类失去了通过索引访问数组元素的能力(添加:哎呀,我错过了索引器).有没有更好的方法?什么可以使数组本身不可变?

c# arrays readonly

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

使用django.db.connection.queries

我有一个Python/Django应用程序,它运行了很多SQL语句.出于调试目的,我想我应该为我创建一个简单的视图,它只列出已经运行的所有SQL语句.

根据文档,这段代码应该足以做到这一点:

    from django.db import connection
    connection.queries
Run Code Online (Sandbox Code Playgroud)

只要DEBUG是真的.

但是,这并没有给我任何东西.DEBUG肯定设置为True.在什么情况下这个connection.queries存储?我的意思是,我应该能够执行一个执行大量SQL语句的页面,然后切换到我创建的http:// myserver/sql视图,看看那些SQL语句,对吗?当然使用相同的浏览器会话...

我确实检查了db.reset_queries()是否在代码中的任何地方运行,看起来不是.

任何想法为什么connection.queries总是空的?

django connection django-queryset

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

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

替换sql server 2000中的ntext(超过4000个字符)

如何替换sql server 2000中ntext列中超过4000个字符的文本?转换为 nvarchar(max) 不起作用,因为它会截断值。

sql-server replace sql-server-2000 ntext

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