小编Dev*_*inB的帖子

防止方法被继承

我有一个具体的基类Foo,包含30个与其子类相关的方法.

现在我遇到了一个仅针对基类的情况,我想创建一个无法继承的方法,这可能吗?

Class Foo 
{
   /* ... inheritable methods ... */

   /* non-inheritable method */
   public bool FooSpecificMethod()
   { 
      return true;
   } 
}

Class Bar : Foo
{
    /* Bar specific methods */
}

var bar = new Bar();
bar.FooSpecificMethod(); /* is there any way to get this to throw compiler error */
Run Code Online (Sandbox Code Playgroud)

编辑

我不确定我最初是否清楚.

我理解继承的原则,我理解Liskov替代原则.在这种情况下,只有一个例外处理"未继承"的情况,所以我不想创建一个'uninheritedFoo'子类.

我问在技术上是否可能创建一个foo.FooSpecificMethod()是有效且可公开访问的方法的情况,但是subclassoffoo.FooSpecificMethod()会抛出编译器错误.

基本上我想在一个未密封的课上使用密封方法.

c# inheritance-prevention

5
推荐指数
2
解决办法
6612
查看次数

从Process Monitor隐藏的进程

我需要创建一个应用程序,它将读取和写入文件(C++/MFC).但我需要进程不要出现在进程监视器(随SysInternals一起提供)中.

从其他人的反应来看,我现在确认这似乎是"非法的".但那是我正在处理的客户的要求.所以,我想我只需要满足客户的要求.

c++ mfc

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

跨数据库存储过程性能注意事项

在我的项目中,我在同一台服务器上有两个独立的DB.除了DB"B"中需要在DB"A"中访问的三列之外,DB是自给自足的.

如果我在A中有一个直接从B访问三列的存储过程,是否有性能方面的考虑?

目前,我们运行一个夜间作业将表B中所需的数据导入表A,这样存储的proc就不会超出A的范围.

这是最好的方法吗?

跨数据库存储过程是否在最佳实践中?

sql stored-procedures

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

列出<T>投射算法和性能注意事项

我有以下代码

class Program
    {
        static void Main(string[] args)
        {
            List<A> aList = new List<A>();

            var aObj = new A();

            aObj.Go(aList.Cast<IB>());
        }
    }

    class A : IB
    {
        public void Go(IEnumerable<IB> interfaceList)
        {
            foreach (IB ibby in interfaceList)
            {
                Console.WriteLine("Here");
            }
        }
    }

    interface IB
    {
        void Go(IEnumerable<IB> interfaceList);
    }
Run Code Online (Sandbox Code Playgroud)

}

我最初尝试传递一个List,但这不起作用.经过SO的大量帮助后,我发现传递IEnumerable是获取对象的唯一方法.ofType(IB).

不幸的是,在我的代码中,以下行将被执行数千次:

aList.Cast<IB>();
Run Code Online (Sandbox Code Playgroud)

我想知道是否有人知道它是如何通过算法实现的(在IL中)以及它的时间顺序.

也就是说,它是否比仅仅投射每个项目的foreach循环更快,还是它正是它的作用?

编辑主类需要维护实际对象的列表.但是只允许读者通过界面触摸它们.

c# performance casting generic-list

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

Web应用程序真的可以面向对象吗?

似乎在我努力维持OO原则时,这一切看起来都是如此做作或不自然.

oop design-patterns web-applications

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