Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public interface IAM
- {
- int ID { get; set; }
- void Save();
- }
- public class concreteIAM : IAM
- {
- public int ID{get;set;}
- internal void Save(){
- //save the object
- }
- //other staff for this particular class
- }
- public class MyList : List<IAM>
- {
- public void Save()
- {
- foreach (IAM iam in this)
- {
- iam.Save();
- }
- }
- //other staff for this particular class
- }
- internal void Save(){
- public abstract class AM
- {
- public int ID { get; set; }
- internal abstract void Save();
- }
- public class concreteIAM : AM
- {
- internal override void Save()
- {
- //Do some save stuff
- }
- }
- public class AMList : List<AM>
- {
- public void SaveItems()
- {
- foreach (var item in this)
- {
- item.Save();
- }
- }
- }
- internal interface InternalIAM
- {
- void Save();
- }
- public class concreteIAM : InternalIAM
- {
- void InternalIAM.Save()
- {
- }
- }
- internal interface IAMSaver { void Save(IAM item); }
- internal class AMSaverFactory {
- IAMSaver GetSaver(Type itemType) { ... }
- }
- public class MyList : List<IAM>
- {
- public void Save()
- {
- foreach (IAM itemin this)
- {
- IAMSaver saver = SaverFactory.GetSaver(item.GetType());
- saver.Save(item)
- }
- }
- }
- internal interface IPersist
- {
- void Save();
- }
- public class Concrete : IPersist
- {
- void IPersist.Save()
- {
- Console.WriteLine("Yeah!");
- }
- }
- // Mylist.cs in the same assembly can still call save like
- public void SaveItems()
- {
- foreach (IPersist item in this)
- {
- item.Save();
- }
- }
- new Concrete().Save(); // doesn't compile. 'Concrete' does not contain a definition for 'Save'
- public interface IAM
- {
- int ID { get; set; }
- }
- internal interface IAMSavable
- {
- void Save();
- }
- public class concreteIAM : IAM, IAMSavable
- {
- public int ID{get;set;}
- public void IAMSavable.Save(){
- //save the object
- }
- //other staff for this particular class
- }
- public class MyList : List<IAM>
- {
- public void Save()
- {
- foreach (IAM iam in this)
- {
- ((IAMSavable)iam).Save();
- }
- }
- //other staff for this particular class
- }
- public abstract class Item
- {
- public int ID { get; set; }
- protected abstract void Save();
- public class ItemCollection : List<Item>
- {
- public void Save()
- {
- foreach (Item item in this) item.Save();
- }
- }
- }
- public sealed class NiceItem : Item
- {
- protected override void Save()
- {
- // do something
- }
- }
- using System;
- public interface IPublic
- {
- void Public();
- }
- internal interface IInternal : IPublic
- {
- void Internal();
- }
- public class Concrete : IInternal
- {
- public void Internal() { }
- public void Public() { }
- }
- public interface IAM
- {
- int ID { get; set; }
- }
- internal interface IAMSave
- {
- void Save();
- }
- public class concreteIAM : IAM, IAMSave
- {
- public int ID { get; set; }
- internal void Save()
- {
- //save the object
- }
- //other staff for this particular class
- }
- public class MyList : List<IAM>
- {
- public void Save() {
- foreach (IAM iam in this) {
- ((IAMSave)iam).Save();
- }
- }
- //other staff for this particular class
- }
Add Comment
Please, Sign In to add comment