Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > c# inheritance standart class


Автор: Nestap 5.9.2009, 13:27
рибята есть идя но не получатся решыть:

Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;

namespace System.Data
{
    public class  DbCommand : OleDbCommand
    {
        public DbCommand()
       {
           
       }
       
    }
}


error:


Error    1    'System.Data.DbCommand': cannot derive from sealed type 'System.Data.OleDb.OleDbCommand'    C:\Documents and Settings\Admin\Desktop\Geo +\Class\dbExecute.cs    9    19    Class



я хочу сбой класы создать .....
 smile  smile 

Автор: Crypton 7.9.2009, 07:02
Немного теории на английском: http://blogs.msdn.com/abhinaba/archive/2005/12/07/500928.aspx
Все дело в дизайне языка. Прикол при sealed («запечатанных») классах, что их нельзя унаследовать, но это можно обойти создав свой провайдер и тупо выполнить остальное методом прокси.
Что-то вроде так.
Код

    public class MyCommand : System.Data.IDbCommand {
        private OleDbCommand _command = new OleDbCommand();
        public void Cancel() {
            throw new NotImplementedException();
        }
        public string CommandText {
            get {
                return _command.CommandText;
            }
            set {
                _command.CommandText = value;
            }
        }
   
        ... и так далее


Автор: Nestap 7.9.2009, 08:52
Crypton, 
interface ya znayu shto nasledovati mojna...
no nadabi vse metods redefened
jali shto nelzea vse nasledovati.. ;(

no vseoravno bolisoe spasiba.....

vapseta ya zadumal eta delati esli prideotsa pomeneati bazu pomeneam tolica etat provider i vseo... a tak... smile

;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)