小编dra*_*vic的帖子

您如何快速找到接口方法的实现?

有没有快速的方法来查找接口的方法/属性/等的所有实现,而不是引用?这是一些示例代码:

public class SomeClass : IBaseClass
{
  public Int32 GetInt()
  {
     return 1;
  }
}

public interface IBaseClass
{
  public Int32 GetInt();
}

public class SomeOtherClass
{
  IBaseClass _someClass;
  private TestMethod()
  {
    _someClass = new SomeClass();
    _someClass.GetInt();
  }
}
Run Code Online (Sandbox Code Playgroud)

我想在查看SomeOtherClass.TestMethod()时快速访问SomeClass.GetInt().如果我右键单击_someClass.GetInt()并单击"Go To Definition",它会将我带到界面.如果我单击"查找所有引用",我可能会看到所有用途的列表......而不仅仅是实现GetInt()方法的类.

有没有更快的方法来找到它?其他开发者的任何提示?我们正在使用DI来处理大多数依赖项,这意味着通过深层嵌套代码进行跟踪需要永远.

c# intellisense visual-studio interface-implementation

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

如何找出哪个.NET框架nuget包的目标?

我有C#项目,必须以.NET 3.5为目标.框架,我有几个我想在给定项目中安装的nuget包.

如何找到给定的nuget包,它支持哪些.NET框架版本(例如,通过包的版本),而不是我试图安装包的每个可用版本,以查看它的安装是否会通过而不回滚因为给定版本的程序包对.NET框架的依赖性高于3.5.

例如,我知道xUnit.net版本1.9.2.是支持.NET 3.5的最高版本,但我必须"手动"找到它.

.net-framework-version nuget nuget-package

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

如何获取放在MFC对话框中的控件的大小和位置?

我已经通过函数获得了控件的指针

CWnd* CWnd::GetDlgItem(int ITEM_ID)
Run Code Online (Sandbox Code Playgroud)

所以我有CWnd*指向控件的指针,但是在CWnd类中找不到任何能够检索给定控件的大小和位置的方法.有帮助吗?

c++ mfc

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

如何从T-SQL中的表中选择前N行?

有没有办法选择,例如,在T-SQL(工作MSSQL)中的前10行表?
我想我在Oracle中看到了一些定义为rownum元变量的东西,用于以下方式

__PRE__
但是MSSQL怎么样?

sql database

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

如何强制链接器使用共享库而不是静态库?

这是Linux编程书的引用:


% gcc -o app app.o -L. –ltest

假设两个libtest.alibtest.so被available.Then链接器必须选择的图书馆之一,而不是other.The链接搜索每个目录(第那些指定的-L选项,然后将这些在标准目录).当链接器找到了一个包含目录无论是libtest.alibtest.so,链接器将停止搜索目录.如果目录中只存在两个变体中的一个,则链接器会选择该变体.否则,链接器会选择共享库版本,除非您明确指示它.您可以使用该-static选项来请求静态存档.例如,libtest.a即使libtest.so共享库也可用,以下行将使用存档 :

% gcc -static -o app app.o -L. –ltest


因为如果链接器遇到包含libtest.a它的目录,则停止搜索并使用该静态库,如何强制链接器仅搜索共享库,而不是静态?

% gcc -o app app.o -L. libtest.so

c++ unix linux shared-libraries

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

发现两个词典之间的差异

是否有LINQ方法来查找两个通用字典之间的区别?
此问题相同,但使用通用词典.

.net c# linq collections dictionary

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

在C#中使用带有`new`运算符的值类型的困境

operator new()与引用类型一起使用时,实例的空间在堆上分配,引用变量本身放在堆栈上.除此之外,在堆上分配的引用类型实例中的所有内容都将被清零.
例如,这是一个类:

class Person
{
    public int id;
    public string name;
}
Run Code Online (Sandbox Code Playgroud)

在以下代码中:

class PersonDemo
{
    static void Main()
    {
        Person p = new Person();
        Console.WriteLine("id: {0}  name: {1}", p.id, p.name);
    }
}
Run Code Online (Sandbox Code Playgroud)

p变量在堆栈上,并且Person(所有它的成员)的创建实例都在堆上.p.id会是0p.name将会null.这将是这种情况,因为堆上分配的所有内容都已清零.

现在我感到困惑的是,如果我使用带new运算符的值类型.例如,考虑以下结构:

struct Date
{
    public int year;
    public int month;
    public int day;
}

class DateDemo
{
    static void Main()
    {
        Date someDate;
        someDate= new Date();

        Console.WriteLine("someDate is: {0}/{1}/{2}", 
            someDate.month, …
Run Code Online (Sandbox Code Playgroud)

.net c# value-type reference-type

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

dynamically loading static library?

Can a static libary *.a in Linux be dynamically loaded at runtime?
I've read here that

...both static and shared libraries can be used as dynamically loaded libraries.

How to dynamically load static library?

c++ linux shared-libraries

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

关于Unix上共享库的困境

如果我构建一个共享库(共享对象),我可以通过以下两种方式使用它:
第一种方法是使用共享库,就像我使用静态库一样.

           #include "myLib.h"
           //...
           //afterwards I can use functions defined in mylib.h
           myFunction();
Run Code Online (Sandbox Code Playgroud)

使用共享库的第二种方法是通过调用动态加载器API函数:dlopen,dlsym,和dlclosedlfcn.h.例如,当我想实现插件模式时,我会以这种方式使用共享库.清单看起来像这样:

#include <dlfcn.h>

void  *myLib;                /*  Handle to shared lib file  */
void (*myFunction)();       /*  Pointer to loaded function  */

  //...

  //load shared object
  myLib = dlopen("/home/dlTest/myLib.so",RTLD_LAZY);
  dlerror();

  //get handle to function
  myFunction = dlsym( myLib, "myFunction");
  dlerror();

  //execute function
  (*myFunction)();

  //close lib
  dlclose(myLib);
  dlerror();
Run Code Online (Sandbox Code Playgroud)

现在我的第一个问题是:在加载时间方面,共享对象的这两种用法有什么区别?通过第一种方式使用共享库,我们在加载时将链接/加载到主应用程序,在第二种方式我们在运行时做同样的事情?

第二个问题.这两种用法的名称是什么?第一个是静态链接共享库,第二个是动态链接/加载共享库?

第三个问题如果我构建了一个没有-fPIC标志(独立于代码的代码)的共享库,我能以第二种方式使用它吗?

干杯

c++ unix linux shared-libraries

6
推荐指数
2
解决办法
845
查看次数

使用Xunit的AutoFixture的AutoData属性会抛出System.InvalidOperationException

我正在使用xunit v2.1.0,xunit.extensions v1.8.0.1549,AutoFixture v3.40.0,AutoFixture.Xunit v3.40.0我有这个使用AutoData的简单琐碎测试

using Ploeh.AutoFixture.Xunit;
using Xunit;

namespace Tests
{
    public class ToolTests
    {
        [Theory, AutoData]
        public void Test(int foo)
        {
            Assert.NotEqual(0, foo);
        }
     }
}  
Run Code Online (Sandbox Code Playgroud)

我在Resharper(v9.2)测试运行器中得到的错误是

System.InvalidOperationException未找到Tests.ToolTests.Test的数据异常没有stacktrace

我注意到xunit.extensions不是最后一个版本(目前是v2.0.0),但是当我尝试更新给定的nuget包时,我得到错误:

无法解析依赖项.'xunit.extensions 2.0.0'与'AutoFixture.Xunit 3.40.0约束:xunit.extensions(≥1.8.0.1549&& <2.0.0)'不兼容

任何线索为什么会发生这种情况?

unit-testing xunit autofixture

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