小编use*_*895的帖子

检查'T'是否继承或实现了类/接口

有没有办法测试T是否继承/实现了一个类/接口?

private void MyGenericClass<T> ()
{
    if(T ... inherits or implements some class/interface
}
Run Code Online (Sandbox Code Playgroud)

c# generics

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

C#:传递通用对象

我希望有一个通用的打印功能... PrintGeneric(T)......在下面的例子中,我缺少什么?

一如既往,感谢您的帮助/见解......

public interface ITest
{}

public class MyClass1 : ITest
{
    public string myvar = "hello 1";
}

public class MyClass2 : ITest
{
    public string myvar = "hello 2";
}

class DoSomethingClass
{

    static void Main()
    {
        MyClass1 test1 = new MyClass1();
        MyClass2 test2 = new MyClass2();

        Console.WriteLine(test1.myvar);
        Console.WriteLine(test2.myvar);             
        Console.WriteLine(test1.GetType());

        PrintGeneric(test1);
        PrintGeneric<test2.GetType()>(test2);
    }

    // following doesn't compile
    public void PrintGeneric<T>(T test)
    {
        Console.WriteLine("Generic : " + test.myvar);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# generics methods

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

C#:在运行时获取类型参数以传递给Generic方法

通用方法是......

    public void PrintGeneric2<T>(T test) where T : ITest
    {
        Console.WriteLine("Generic : " + test.myvar);
    }
Run Code Online (Sandbox Code Playgroud)

我是从Main()调用它的...

    Type t = test2.GetType();       
    PrintGeneric2<t>(test2);
Run Code Online (Sandbox Code Playgroud)

我得到错误"CS0246:类型或命名空间名称'T’无法找到"和"CS1502:最好重载的方法匹配DoSomethingClass.PrintGeneric2 <T>(T)具有无效参数"

这与我之前的问题有关:C#:传递通用对象

我已经读过,在没有使用反射或methodinfo的情况下,无法在运行时确定泛型类型,但是在这个实例中我不太清楚如何这样做.

谢谢,如果你能启发我=)

c# generics types

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

TortoiseSVN如何通过命令行禁用/启用TSVNCache.exe?

我试图在BAT脚本中禁用(并启用)TSVNCache,是否可能?还是我需要杀死它?谢谢.

tortoisesvn tsvncache

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

C#:使用可选参数和命名参数重载构造函数?

这不是关于正确编码实践的问题,我只是在研究语义.假设我有以下构造函数......

public FooClass(string name = "theFoo")
{ fooName = name; }

public FooClass(string name, int num = 7, bool boo = true) : this(name)
{ fooNum = num; fooBool = boo; }
Run Code Online (Sandbox Code Playgroud)

因此可以使用命名参数......?

FooClass foo1 = new FooClass(num:1);  
Run Code Online (Sandbox Code Playgroud)

//我只传递一个命名参数,依靠选项来处理其余的事情

或者没有参数调用构造函数FooClass(s​​tring,int,bool)?如......

FooClass foo2 = new FooClass();
Run Code Online (Sandbox Code Playgroud)

c# optional-parameters named-parameters

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

你如何破解/反编译Camera固件?(带反编译切线)

我想知道需要采取哪些措施来"破解"相机的固件来添加/更改功能,特别是佳能或奥林巴斯制造的相机.

我可以理解这是一个涉及的主题,但是我应该关注的步骤和我发布的一般概述将不胜感激.

我假设第一步是获取固件,将其加载到反编译器(任何建议?)并检查内容.我承认我之前从未反编译代码,所以这对我来说是一个很好的挑战,任何建议?图书?教程?我应该期待什么?

谢谢堆栈一如既往!

注意:我知道Magic Lantern和CHDK,我想获得关于它们是如何开始并成为技术建议的技术建议.

http://magiclantern.wikia.com/wiki/Decompiling

http://magiclantern.wikia.com/wiki/Struct_Guessing

http://magiclantern.wikia.com/wiki/Firmware_file

http://magiclantern.wikia.com/wiki/GUI_Events/550D

http://magiclantern.wikia.com/wiki/Register_Map/Brute_Force

camera firmware

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

DIR输出到BAT阵列?

有没有办法将'dir'命令的输出读入BAT文件中的数组?或者我是否需要先将其输出到文件中,然后读取文件并删除文件?

目的是获取目录中的文件夹列表,向每个文件夹附加一个数字,然后提示用户输入数字以选择文件夹.

更新:得到它!

SETLOCAL EnableDelayedExpansion
SET /A c=1

FOR /F "tokens=*" %%F in ('dir /on /b /a:d /p %svnLOCAL%') DO ( 
    ECHO !c!. %%F
    SET dir_!c!=%%F
    SET /a c=c+1    
)

REM test array
ECHO !dir_4!
ENDLOCAL
Run Code Online (Sandbox Code Playgroud)

arrays batch-file

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

C#:在传递它的字符串名称时使用变量

所以如果将变量的字符串名称传递给方法,我知道要使用哪个变量.

在下面的示例中,我需要帮助的区域是PrintVar(字符串)...将字符串参数转换为变量...以便它分别打印出"here be variable 1"和"here be variable 2". .谢谢!


class ReflectionTest
{    
    class MyObj
    {
        private string myvar;

        public MyObj(string input)
        {   this.myvar = input; }

        public override string ToString()
        {   return ("here be " + myvar);    }   
    }

    class MyClass
    {
        private MyObj var1;
        private MyObj var2;

        public MyClass()
        {   
            var1 = new MyObj("variable 1");
            var2 = new MyObj("variable 2");
        }

        public void PrintVar(string theVariable)
        { 
            Console.WriteLine(theVariable); 
        }   
    }


    static void Main()
    {
        MyClass test = new MyClass();
        test.PrintVar("var1"); …
Run Code Online (Sandbox Code Playgroud)

c# reflection

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