小编gab*_*abe的帖子

在C#中,为什么我不能测试事件处理程序在它定义的类之外的任何地方是否为null?

我确信我只是不了解C#中事件和/或委托的基本内容,但为什么我不能在此代码示例中进行布尔测试:

public class UseSomeEventBase {
    public delegate void SomeEventHandler(object sender, EventArgs e);
    public event SomeEventHandler SomeEvent;
    protected void OnSomeEvent(EventArgs e) {
        // CANONICAL WAY TO TEST EVENT. OF COURSE, THIS WORKS.
        if (SomeEvent != null) SomeEvent(this, e);
    }
}

public class UseSomeEvent : UseSomeEventBase {
    public bool IsSomeEventHandlerNull() {
        // "LEFT HAND SIDE" COMPILER ERROR
        return SomeEvent == null;
    }
}

class Program {
    static void Main(string[] args) {
        var useSomeEvent = new UseSomeEvent();
        useSomeEvent.SomeEvent +=new UseSomeEventBase.SomeEventHandler(FuncToHandle);
        // "LEFT HAND …
Run Code Online (Sandbox Code Playgroud)

c# events delegates event-handling

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

如何获取基类的泛型类型参数?

我有三个课程如下:

public class TestEntity { }

public class BaseClass<TEntity> { }

public class DerivedClass : BaseClass<TestEntity> { }
Run Code Online (Sandbox Code Playgroud)

我已经在运行时获得了使用反射的System.Type对象DerivedClass.如何获得使用反射的System.Type对象TestEntity

谢谢.

c# generics reflection

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

ASP.NET MVC的分页解决方案是否在数据库中进行分页?

我通过google搜索找到的大多数ASP.NET MVC分页解决方案看起来都是以IEnumerable集合的形式从数据库表中获取所有行,对IEnumerable集合执行一些分页转换,然后将结果返回给视图.我希望能够在数据库端进行分页,但仍然有一些分页类来进行页码计算和HTML生成.那里有解决办法吗?或者是我一直在寻找的那些,但我没有看到它,因为我看错了他们?

这是我一直在看的东西:

database asp.net-mvc paging pagination linq-to-sql

13
推荐指数
2
解决办法
5619
查看次数

为什么我的视图模型中的内部成员无法在视图中访问?

我的视图模型中有一些内部自动属性,但我的强类型视图看不到它们.一切都在同一个集会中,为什么会发生这种情况呢?

public class MyViewModel {
    public   int PublicProperty { get; set; }
    internal int InternalProperty   { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

.

@*My view*@
@model MyViewModel

@Model.PublicProperty

@Model.InternalProperty @*Causes compilation error*@
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc access-modifiers viewmodel strongly-typed-view asp.net-mvc-3

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

如何使用NHibernate(Fluent)将DateTime属性映射到数据库中的2个varchar列?

我正在处理一个遗留数据库,它在一些表中将日期和时间字段作为char(8)列(分别格式化为yyyyMMdd和HH:mm:ss).如何将2个char列映射到单个.NET DateTime属性?我尝试了以下内容,但我得到了"无法访问setter"错误,因为DateTime Date和TimeOfDay属性是只读的:

public class SweetPocoMannaFromHeaven
{    
    public virtual DateTime? FileCreationDateTime { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

.

mapping.Component<DateTime?>(x => x.FileCreationDateTime,
            dt =>
            {
                dt.Map(x => x.Value.Date,
                    "file_creation_date");
                dt.Map(x => x.Value.TimeOfDay,
                    "file_creation_time");
            });
Run Code Online (Sandbox Code Playgroud)

我也尝试过为DateTime定义一个IUserType,但我无法理解.我已经做了大量的谷歌搜索,但我还是无法弄明白.处理这个愚蠢的遗留数据库约定的最佳选择是什么?一个代码示例会有所帮助,因为对于一些这些更加模糊的场景的文档并不多.

legacy nhibernate nhibernate-mapping fluent-nhibernate iusertype

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

如何在C#中实现类之间的共享行为(没有课程的多重继承)

更新:所以这里的每个人都告诉我,我只需要重新开始我如何设计课程(顺便说一句,谢谢大家的优秀答案!).接下来,我开始对战略模式进行广泛阅读.我想创建从抽象基类继承的行为类(或策略类).然后,Candidate类将具有不同抽象基类/类的属性作为Type行为或策略.也许是这样的:

public abstract class SalaryStrategy {
    public abstract decimal Salary { get; set; }
    public abstract decimal Min { get; set; }
    public abstract decimal Mid { get; set; }
    public decimal CompaRatio {
        get {
            if (this.Mid == 0) { return 0; }
            else { return this.Salary / this.Mid; }
        }
    }
}

public class InternalCurrentSalaryStrategy {
    public override decimal Salary { get; set; }
    public override decimal Min {
        get { return this.Salary * …
Run Code Online (Sandbox Code Playgroud)

c# inheritance code-reuse design-patterns multiple-inheritance

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

有没有办法在HTML尖括号内嵌套(或转义)ASP.NET内联代码?

是否有可能在ASP.NET中执行以下操作:

<tr<%= index++ % 2 == 0 ? " class=\"alt-row\"" : ""; %>>
Run Code Online (Sandbox Code Playgroud)

换句话说,有没有办法逃脱内联代码块或其他东西的尖括号?

(我知道替代方案是:

<% if (index++ % 2 == 0) { %>
    <tr class="alt-row">
<% } else { %>
    <tr>
<% } %>
Run Code Online (Sandbox Code Playgroud)

.我只是好奇,如果可能的另一种方式)

html asp.net syntax asp.net-mvc inline-code

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