Сообщение Изменение класса в библиотеке влияет ли на вызывающую програ от 05.11.2014 7:53
Изменено 05.11.2014 7:55 Vaako
Всегда думал что изменение класса должно влиять на зависимые модули и вызывающею программу.
Так ли это?
Вот пишу код который исходного примера:
Так ли это?
Вот пишу код который исходного примера:
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
---------------------------
ОК
---------------------------
Изменение класса в библиотеке влияет ли на вызывающую програ
Всегда думал что изменение класса должно влиять на зависимые модули и вызывающею программу.
Так ли это?
Вот пишу код исходного примера:
Так ли это?
Вот пишу код исходного примера:
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
---------------------------
ОК
---------------------------