问题列表 - 第8752页

在C#中使用扩展方法进行伪多重继承?

类似的问题,但不完全相同的事情

我认为使用与接口相同的命名空间中的扩展方法,您可以获得与多继承类似的效果,因为您不需要在10个不同的类中以相同的方式实现相同的接口的重复代码.

这样做的一些缺点是什么?我认为专业人士非常明显,这是后来通常会再次咬你的缺点.

我看到的一个缺点是扩展方法不能是虚拟的,因此您需要确保实际上确实希望它们以相同的方式实现每个实例.

extension-methods dry multiple-inheritance c#-3.0

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

文件历史记录:在源代码中还是让scm处理它?

我正在学习mercurial作为我的solo scm软件.使用其他管理软件,您可以通过标记将更改注释放入文件头.使用hg,您可以对更改集进行注释,但这不会进入源代码.我更喜欢像VSS这样的中央控制.

为什么要将文件历史记录放入源文件的标题中?我应该让mercurial用我的变更集评论管理历史记录吗?

version-control mercurial

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

Python的运行时目录

如何从Python脚本中找出当前的运行时目录?

python working-directory

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

ReSharper - 使用Microsoft.Contracts时可能的空值分配

有没有办法向ReSharper表明由于按合同设计需要检查,不会出现空引用?例如,以下代码将Possible 'null' assignment to entity marked with 'NotNull' attribute在第7行和第8行的ReSharper中引发warning():

private Dictionary<string, string> _Lookup = new Dictionary<string, string>();

public void Foo(string s)
{
    Contract.Requires(!String.IsNullOrEmpty(s));

    if (_Lookup.ContainsKey(s))
        _Lookup.Remove(s);
}
Run Code Online (Sandbox Code Playgroud)

真正奇怪的是,如果删除该Contract.Requires(...)行,ReSharper消息就会消失.

更新

我通过ExternalAnnotations找到了解决方案,Mike也在下面提到过.以下是如何在Microsoft.Contracts中为函数执行此操作的示例:

  • 创建一个Microsoft.ContractsExternalAnnotationsReSharper目录下调用的目录.
  • 接下来,创建一个名为的文件Microsoft.Contracts.xml并填充如下:

<assembly name="Microsoft.Contracts">
    <member name="M:System.Diagnostics.Contracts.Contract.Requires(System.Boolean)">
        <attribute ctor="M:JetBrains.Annotations.AssertionMethodAttribute.#ctor"/>
        <parameter name="condition">
            <attribute ctor="M:JetBrains.Annotations.AssertionConditionAttribute.#ctor(JetBrains.Annotations.AssertionConditionType)">
                <argument>0</argument>
            </attribute>
        </parameter>
    </member>
</assembly>
Run Code Online (Sandbox Code Playgroud)

  • 重新启动Visual Studio,消息就消失了!

c# resharper design-by-contract code-contracts microsoft-contracts

52
推荐指数
3
解决办法
9640
查看次数

什么时候在SQL命令中使用非参数化变量是安全的?

我正在用C#方法编写一个select查询,它允许客户端代码提供行ID并返回从行数据构造的对象.如果行ID是一个整数并且我已经确认它是正数,那么通过使用string.Format传递它是否有任何危害?如果只允许传入int而不是字符串,我看不出有什么损坏可以做.

c# sql database

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

解析器组合器和递归下降解析器之间有什么关系?

解析器组合器和递归下降解析器之间有什么关系?

parsing

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

关于python的两个简单问题

我有2个关于python的简单问题:

1.如何在python中获取文件的行数?

2.如何轻松地将文件对象中的位置定位到最后一行?

python file

2
推荐指数
3
解决办法
407
查看次数

如何在OS X下覆盖malloc(),calloc(),free()等?

假设最新的XCode和GCC,覆盖内存分配函数的正确方法是什么(我猜运算符new/delete也是如此).调试内存分配器对于游戏来说太慢了,我只需要一些基本的统计数据,我可以自己做,影响最小.

我知道它在Linux中很容易因为钩子而存在,而且在十年前编写HeapManager时,这在codewarrior下是微不足道的.

可悲的是,smartheap不再有mac版本.

malloc macos xcode overriding

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

JavaScript中的Modulo - 大量的

我尝试用JS'模数函数计算,但没有得到正确的结果(应该是1).这是一段硬编码的代码.

var checkSum = 210501700012345678131468;
alert(checkSum % 97);

Result: 66
Run Code Online (Sandbox Code Playgroud)

问题出在这里?

此致,Benedikt

javascript integer modulo

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

将JPanels堆叠在其他顶部

我已经创建了5个非常相似的面板,这些面板一次只能在一个框架的同一区域中可见,我的意思是当应用程序中的一个(JPanel0)可见而其他四个被创建但看不见时当我点击Button1时,JPanel1设置为可见,JPanel0变为不可见,与所有相同.

我设法与BorderLayout接近但我不能让他们所有人都集中在中心位置.有人能帮我吗?非常感谢你!

java layout swing jpanel

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