小编gwi*_*dry的帖子

创建运行时确定类型的实例的最佳方法

在.NET 4中创建在运行时确定的类型实例的最佳方法是什么?

我有一个实例方法,虽然作用于BaseClass对象可能会被其派生类的实例调用.我需要创建this与方法中相同类型的另一个实例.为每个派生类重载Method是不切实际的,因为它相当复杂,并且更有效地保持单个实现.

public class BaseClass
{
     //constructors + properties + methods etc

     public SomeMethod()
     {
          //some code

          DerivedClass d = new DerivedClass(); //ideally determine the DerivedClass type at run-time
     }
}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了一些关于反射或使用动态关键字但我没有这些经验.

c# reflection performance runtime dynamic

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

LINQ如何在查询后使用第一项上的位置组合元组中的第二项

 Tuple<int, double>[] obs1;
 Tuple<int, double>[] obs2;
Run Code Online (Sandbox Code Playgroud)

我想做的是创造 Tuple<int, double>[] obs3

其中包含那些Tuple<int,double>具有相同int的两个obs1obs2,然后设置相应的双为:

obs3[i].Item2 =  obs1[i].Item2 + obs2[i].Item2
Run Code Online (Sandbox Code Playgroud)

我尝试用这种方式找到相关的元组:

var obs3 = from o in obs1 where obs2.Contains(o) select o;
Run Code Online (Sandbox Code Playgroud)

但后来我不知道如何访问和使用Item2 double,而我只是得到了一个子集obs1.

我一直对我的问题嗤之以鼻.我希望它能因为我没有尝试过第一次尝试解决方案.

c# linq

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

将第二个索引器添加到Math.NET Numerics

不知道如何满足stackoverflow对这个的需求......

我想修改MathNET Numerics包,以便我可以使用索引器访问或分配子矩阵,如下所示:

A[rows, cols] 
Run Code Online (Sandbox Code Playgroud)

其中,rowscolsint[]

我编写了一个扩展方法Sub(int [] rows,int [] cols),它实现了相同的目标,但是使用索引方式会更聪明.

是否可以添加索引器的扩展而无需重建整个包?如果是这样的话?

c# indexing extension-methods packages mathnet-numerics

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

为什么通用列表的显式转换不起作用

我试图在consturctor中为一个派生类IntersectionPath转换一个对象列表,如下所示.

    public class IntersectionPath : Path<IntersectionSegment>, IEnumerable
    {          

        //Constructors
        public IntersectionPath() : base() {  Verts = null; }

        public IntersectionPath(List<Intersection> inVerts, List<Segment<Node>> inEdges) : base() 
        {
            this.Segments = (List<IntersectionSegment>) inEdges;
        }

    }
Run Code Online (Sandbox Code Playgroud)

段在通用基类Path中定义

    public class Path<T> : IEnumerable<T> where T : Segment<Node>
    {   
        //public properties
        public List<Direction> Directions {get; set; }
        public List<T> Segments  {  get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我已经为IntersectionSegment类中的强制转换定义了一个显式运算符(见下文,因此不清楚为什么这不会编译.我在IntersectionPath构造函数中有一个错误消息.

public class IntersectionSegment : Segment<Intersection>
{           
    //curves which intersect the primary curve at I0(Start Node) and I1(End Node)
    public Curve …
Run Code Online (Sandbox Code Playgroud)

c# generics casting explicit-conversion

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

LINQ查询查找具有最接近数据变量的对象以查询输入变量

我有一个List,UserObj有一个DateTime数据成员和一个字符串Name成员.我想在列表中找到具有给定Name InputName和最接近输入DateTime InputDT的DateTime的UserObj

名称和日期时间可能都会出现,但会有一个独特的解决方案.

我想过:

UserObj user = userObjList.Where(u => ((u.Name ==inputName) && (userObjList.Min())).ToList()[0];
Run Code Online (Sandbox Code Playgroud)

但不确定如何指定最低条件?

c# linq min

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

无法调试c ++项目因为无法启动静态库启动程序*.lib

我正在使用一个我没有问题的库(Astro.lib)(我想这是一个发布版本).

我还内置了一个项目,引用库(它会作为一个发布EXE罚款),但因为我得到的消息"无法启动程序'Astro.lib’我不能调试项目.

如果我尝试调试lib然后我得到相同的错误,所以我猜它与没有构建调试我的lib但不知道如何修改有关.

我尝试使用MSDN信息更改属性页但不确定我是否正在解决正确的问题.我应该对链接项目库的属性页进行哪些更改?

提前致谢

c++ debugging static-libraries visual-c++

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

如何使用派生的特定List <TUser>设置基本成员通用List <T>

尝试在此派生类中设置通用基本集合类成员时,我遇到编译器错误.

error CS0029: Cannot implicitly convert type 'System.Collections.Generic.List<IntSegment>' to 'System.Collections.Generic.List<T>'

这是我的通用集合的大纲

public class Path<T> : IEnumerable<T> where T : Segment
{
    private List<T> segments = new List<T>();

    public List<T> Segments
    {
        set { segments = value; }
        get { return this.segments; }
    }

    public Path()
    {
        this.Segments = new List<T>();
    }

    public Path(List<T> s)
    {
        this.Segments = s;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,为Segment的派生类IntSegment定义此集合的派生泛型类(为其定义基本集合)

public class IntersectionClosedPath<T> : Path<T>, IEnumerable<T> where T : IntSegment
{
    public IntersectionClosedPath(List<IntSegment> inEdges)
        : base()
    {
        Segments = …
Run Code Online (Sandbox Code Playgroud)

c# generics generic-list

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