#c# #events
#c# #Мероприятия
Вопрос:
Здравствуйте, я создаю класс, который содержит событие и переменные :
namespace FS
{
public class SomeEventArgs : EventArgs
{
public readonly string SomeVarible;
public SomeEventArgs (string someVarible)
{
SomeVarible= someVarible;
}
}
}
и я хочу использовать это в другом классе :
namespace FS
{
delegate void Example(object sender, SomeEventArgs e);
public class OtherClass
{
public event Example example;
}
и я получаю эту ошибку :
Ошибка CS7025 Непоследовательная доступность: тип события ‘Example’ менее доступен, чем событие ‘OtherClass.example’
Ответ №1:
Вы не указали модификатор доступа, который используется по delegate void Example(object sender, SomeEventArgs e);
умолчанию internal
, но событие в классе OtherClass
есть public
.
Нелогично предоставлять что-либо другим библиотекам с public
модификатором, в то время как базовый тип доступен только внутри вашей библиотеки, потому что это internal
.
Самое простое решение — создать свой делегат public
или ваше событие public internal
, зависит от того, как вы хотите его использовать.
Вы можете найти больше о модификаторах доступа здесь, в документации.