小编det*_*lor的帖子

Firefox显示问题:表格单元格中的绝对值

我在td元素中使用绝对定位的内容时发现了一个问题.该td元素未被识别为定位元素,因此内容相对于该元素定位body.此问题仅出现在FireFox中,并且预期的布局在其他浏览器中可见 - jsfiddle.

对它进行一些挖掘似乎与使用FireFox display:table-cell作为表格单元格的默认显示类型有关.我可以通过将显示更改为block或通过添加div容器来充当内容的定位容器来解决此问题.

有没有理由避免将单元格的显示类型更改为block?我更愿意使用此方法,而不是添加其他元素来纠正一个浏览器中的问题.

这与表格单元格中div样式绝对描述的问题不同,或者为什么"position:absolute"时"display:table-cell"被破坏.

css firefox

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

IoC服务的抽象类或接口?

我目前正在使用IoC在项目中提供存储库的具体实现.我读过的所有示例都使用接口作为服务的定义.但是,阅读Microsoft的建议后,建议您更喜欢接口上的抽象类.

我发现这与模板模式相结合有用,可以减少重复.例如,给一个Product具有属性的类IsActive我可以使用存储库的接口,例如:

interface IProductRepository
{
    IEnumerable<Product> Load();
}
Run Code Online (Sandbox Code Playgroud)

如果一个常见的任务是加载活动产品,那么我需要这样做:

IEnumerable<Product> activeProducts = repository.Load().Where(x => x.IsActive);
Run Code Online (Sandbox Code Playgroud)

repository具体实施在哪里.如果我使用了一个抽象类,例如:

abstract class ProductRepository
{
    protected abstract IEnumerable<Product> LoadCore();

    public IEnumerable<Product> Load()
    {
        return LoadCore().Where(x => x.IsActive);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我可以使用加载活动产品

IEnumerable<Product> activeProducts = repository.Load();
Run Code Online (Sandbox Code Playgroud)

加载产品信息的所有实现都在派生的contrete类中,ProductRepository因此不存在与持久层的耦合.如果发现存在另一个通常执行的活动,则可以将其添加到基类中,作为使用接口无法完成的非破坏性更改.

使用接口而不是抽象类有什么好处吗?我可以遇到使用抽象类的哪些潜在缺点?

我使用Castle Windsor作为IoC控制器和.Net framework 3.5.

design-patterns inversion-of-control .net-3.5

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

格式化DateTime值日值

是否有一种简单的方法以第1,第2,第3,......格式显示日期的日期部分?我怀疑通过自定义日期时间格式字符串没有这样做的方法(我会很高兴错了),所以有人实现了这样做的方法吗?

datetime ordinals .net-3.5

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

这些代码行说什么?

    T FindBy(object key);
Run Code Online (Sandbox Code Playgroud)

上面的代码是什么?

  T this[object key] { get; set; }
Run Code Online (Sandbox Code Playgroud)

这是什么以上代码?有人说这是一个我不完全理解的索引器!

.net c#

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