У меня есть два приложения App1 и App2.App1 добавил ссылку на App2, а App2 добавил ссылку на System.Drawing
.
В App2 есть функция с двумя перегрузками, первая из которых защищена и имеет параметр от System.Drawing.Bitmap
а второй public имеет целочисленный параметр.
namespace App1Namespace
{
class Program
{
static void Main(string[] args)
{
App2Namespace.StaticClass.Func(4);
namespace App2Namespace
{
public class StaticClass
{
protected static void Func(System.Drawing.Bitmap bitmapParam) { }
public static void Func(int intParam) { }
При сборке App1 будет выдана следующая ошибка времени компиляции:
Ошибка 1 Тип 'System.Drawing.Bitmap' определен в сборке, на которую нет ссылок.Вы должны добавить ссылку на сборку 'System.Drawing, версия = 4.0.0.0, Culture = нейтральная, PublicKeyToken = b03f5f7f11d50a3a'.
Хотя Func
с параметром Bimap
защищен,Приложение 1 должно иметь ссылку на System.Drawing
.
Вопрос в том, зачем App1 нужно System.Drawing
?и почему эта ошибка появляется только тогда, когда вызывается вторая перегрузка, и не появляется, когда вызывается другая перегрузка (например, с двумя параметрами)?
Примечание. Когда первая перегрузка становится частной, ошибка исчезает.