Изменение класса в библиотеке влияет ли на вызывающую програ
От: Vaako Украина  
Дата: 05.11.14 07:53
Оценка:
Всегда думал что изменение класса должно влиять на зависимые модули и вызывающею программу.
Так ли это?
Вот пишу код исходного примера:
public class Class1
    {
        public int X;
        public string S;
        //public decimal FFF;
    }
    public interface IClassCall
    {
        string foo(Class1 xxx);
    }
    public class ClassY : IClassCall
    {
        string IClassCall.foo(Class1 xxx)
        {
            return string.Format("Calss1: x={0}, S={1}", xxx.X, xxx.S);
            //return string.Format("Calss1: x={0}, S={1}, FFF={2}", xxx.X, xxx.S, xxx.FFF);
        }
    }

private void Button_Click_PRESS(object sender, RoutedEventArgs e)
{
            
                IClassCall y = new ClassY();
                var x = new Class1();
                x.X = 10;
                x.S = "11";
                var msg = y.foo(x);
                MessageBox.Show(msg);
                return;
}

---------------------------

---------------------------
Calss1: x=10, S=11
---------------------------
ОК
---------------------------

Компилирую программу и библиотеку и выкладываю в папку, потом изменяю библиотеку расширяя определение класса, компилирую подкладываю в папку с программой и все по прежнему работает.
public class Class1
    {
        public int X;
        public string S;
        public decimal FFF;
    }
    public interface IClassCall
    {
        string foo(Class1 xxx);
    }
    public class ClassY : IClassCall
    {
        string IClassCall.foo(Class1 xxx)
        {
            //return string.Format("Calss1: x={0}, S={1}", xxx.X, xxx.S);
            return string.Format("Calss1: x={0}, S={1}, FFF={2}", xxx.X, xxx.S, xxx.FFF);
        }
    }

---------------------------

---------------------------
Calss1: x=10, S=11, FFF=0
---------------------------
ОК
---------------------------

Насколько этот прием работает? не возникнут ли последствия в будущем?
Отредактировано 05.11.2014 7:55 Vaako . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.