小编run*_*ack的帖子

为什么从接口继承的属性变为虚拟?

假设我有一个接口和两个类,其中一个类实现了这个接口:

interface IAAA
{
    int F1 { get; set; }
}

class AAA1
{
    public int F1 { get; set; }
    public int F2 { get; set; }
}

class AAA2 : IAAA
{
    public int F1 { get; set; }
    public int F2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在类中AAA2,属性F1是从接口"继承"(我不确定)IAAA,然后我使用反射来检查属性是否是虚拟的:

Console.WriteLine("AAA1 which does not implement IAAA");
foreach (var prop in typeof(AAA1).GetProperties())
{
    var virtualOrNot = prop.GetGetMethod().IsVirtual ? "" : " not";
    Console.WriteLine($@"{prop.Name} is{virtualOrNot} virtual"); …
Run Code Online (Sandbox Code Playgroud)

c# reflection

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

如何使用LINQ to Entities初始化匿名类型?

LINQ to实体支持匿名类型作为返回类型,例如:

var query = from a in b.C select new { Value = a.Value };
Run Code Online (Sandbox Code Playgroud)

和编译器生成的代码将是这样的:

private class f__AnonymousType0<j__TPar>
{
    private readonly j__TPar i__Field;
    public j__TPar Value
    {
        get { return i__Field; }
    }

    public f__AnonymousType0(j__TPar Value)
    {
        i__Field = Value;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用生成的匿名类型实例:

var query = from a in b.C select new f__AnonymousType0<string>(a.Value);
Run Code Online (Sandbox Code Playgroud)

错误:

System.NotSupportedException: Only parameterless constructors and initializers are supported in LINQ to Entities.
Run Code Online (Sandbox Code Playgroud)

将被抛出.

那么匿名类型如何在这里工作?

c# linq entity-framework

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

内部返回类型的C#protected internal方法?

这是否意味着protected方法不能成为internal一种public类型?

internal class InternalReturnType
{
}

public class PublicTypeWithProtectedMethod
{
    //build succeeded when I remove `protected`
    internal protected InternalReturnType GetValue()
    {
        return new InternalReturnType();
    }
}

public sealed class PublicTypeWithPublicMethod : PublicTypeWithProtectedMethod
{
    public void Print()
    {
        var value = base.GetValue();
    }
}
Run Code Online (Sandbox Code Playgroud)

c#

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

标签 统计

c# ×3

entity-framework ×1

linq ×1

reflection ×1