Click here to Skip to main content
       

C#

 
GeneralRe: Manual Coding vs Code Generation PinmemberMarcus Kramer16-Nov-12 8:26 
AnswerRe: Manual Coding vs Code Generation PinmemberMycroft Holmes16-Nov-12 15:37 
GeneralRe: Manual Coding vs Code Generation PinmemberPIEBALDconsult21-Nov-12 17:51 
GeneralRe: Manual Coding vs Code Generation PinmemberMycroft Holmes21-Nov-12 18:46 
GeneralRe: Manual Coding vs Code Generation PinmemberPIEBALDconsult22-Nov-12 9:51 
AnswerRe: Manual Coding vs Code Generation PinmemberPIEBALDconsult21-Nov-12 4:00 
QuestionDesign Question PinmemberTheGermoz15-Nov-12 17:31 
AnswerRe: Design Question PinmentorDaveyM6915-Nov-12 19:31 
You should only use a base class where you want the exact same implementation in all derived classes.
 
A an interface is a contract (no implementation unlike an abstract class) I don't really see the problem. This works just fine:
public interface I1
{
    void A();
    void B();
}
public interface I2
{
    void A();
    void B();
    void C();
    void D();
}
public class ClassA : I1, I2
{
    public void A()
    { }
    public void B()
    { }
    public void C()
    { }
    public void D()
    { }
}
If you want differing implementations of A and B depending on whether usin I1 or I2 then use explicit declaration:
public class ClassA2 : I1, I2
{
    void I1.A()
    { }
    void I2.A()
    { }
    void I1.B()
    { }
    void I2.B()
    { }
    public void C()
    { }
    public void D()
    { }
}
You will now need to cast the instance to either I1 or I2 to have access to methods A or B, but you can mix it up and provide the default implementation:
public class ClassA2 : I1, I2
{
    public void A()
    {
        (this as I1).A();
    }
    public void B()
    {
        (this as I1).B();
    }
    void I1.A()
    { }
    void I2.A()
    { }
    void I1.B()
    { }
    void I2.B()
    { }
    public void C()
    { }
    public void D()
    { }
}
Dave

Binging is like googling, it just feels dirtier.
Please take your VB.NET out of our nice case sensitive forum.
Astonish us. Be exceptional. (Pete O'Hanlon)

BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)



GeneralRe: Design Question PinmemberTheGermoz15-Nov-12 20:11 
AnswerRe: Design Question PinmemberRahul Rajat Singh15-Nov-12 21:43 
GeneralRe: Design Question PinmemberTheGermoz15-Nov-12 23:14 
AnswerRe: Design Question PinmemberRahul Rajat Singh15-Nov-12 23:22 
AnswerRe: Design Question PinmemberBobJanova15-Nov-12 23:12 
GeneralRe: Design Question PinmemberTheGermoz15-Nov-12 23:16 
GeneralRe: Design Question PinmemberRahul Rajat Singh15-Nov-12 23:35 
GeneralRe: Design Question PinmemberBobJanova16-Nov-12 0:09 
AnswerRe: Design Question PinmemberSledgeHammer0116-Nov-12 9:53 
GeneralRe: Design Question PinmemberTheGermoz16-Nov-12 10:06 
AnswerRe: Design Question PinmemberClifford Nelson16-Nov-12 9:53 
QuestionBackground worker thread PinmemberMAW3015-Nov-12 14:54 
AnswerRe: Background worker thread PinmentorDaveyM6915-Nov-12 18:51 
QuestionArray, Struct, Class??? I'm so confused.... PinmemberKKW_acd15-Nov-12 6:29 
AnswerRe: Array, Struct, Class??? I'm so confused.... [modified] PinmentorDaveyM6915-Nov-12 6:55 
GeneralRe: Array, Struct, Class??? I'm so confused.... PinmemberKKW_acd15-Nov-12 9:03 
AnswerRe: Array, Struct, Class??? I'm so confused.... PinmentorDaveyM6915-Nov-12 19:02 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.


Advertise | Privacy | Mobile
Web02 | 2.8.140721.1 | Last Updated 28 Jul 2014
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid