Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> public string IReader.GetLine() /don't compile :(, The modifier 'public' is not valid... 
V
    Опции темы
W1zArD
Дата 13.7.2007, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 29.1.2006

Репутация: 1
Всего: 3



Код

using System;
using System.Collections.Generic;
using System.Text;
using System.Media;

namespace SummaryTest
{
    public interface IReader
    {
        string GetLine();
    }

    public class MyClass
    {
        private SoundPlayer player;
        public MyClass()
        {
            player = new SoundPlayer("abc.wav");
            player.Load();
            Console.WriteLine("[MyClass] called: constructor");
        }
        virtual public void ShowMsg(string msg)
        {
            Console.WriteLine("[MyClass] called: ShowMsg(string)\n#######{0}", msg);
        }
        virtual public void ShowMsg(int msg)
        {
            Console.WriteLine("[MyClass] called: ShowMsg(int)\n#######{0}", msg);
        }
        ~MyClass()
        {
            player.PlaySync();
            Console.WriteLine("[MyClass] called: destructor");
        }
    }

    public class WelcomeMsg : MyClass, IReader
    {
        public WelcomeMsg()
        {
            this.ShowMsg("[WelcomeMsg] called: constructor");
            //base.ShowMsg("[WelcomeMsg] called: constructor");
        }
        public string IReader.GetLine()
        {
            return Console.ReadLine();
        }
        public override void ShowMsg(string msg)
        {
            Console.WriteLine("[WelcomeMsg] called: ShowMsg(string)\n#######{0}", msg);
        }
        public override void ShowMsg(int msg)
        {
            //base.ShowMsg(msg);
            Console.WriteLine("[WelcomeMsg] called: ShowMsg(int)\n#######{0}", msg);
        }
    }

    class StopLine : IReader
    {
        string IReader.GetLine()
        {
            return Console.ReadLine();
        }

        public StopLine()
        {
            Console.ReadLine();
            //IReader.GetLine();
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            MyClass c1 = new MyClass();
            c1.ShowMsg("string msg");
            c1.ShowMsg(777);
            WelcomeMsg c2 = new WelcomeMsg();
            c2.ShowMsg("string msg");
            c2.ShowMsg(777);
            (c2 as IReader).GetLine();//Console.WriteLine("\n\n\n\n\n");
            //StopLine c3 = new StopLine();
        }
    }
}


The modifier 'public' is not valid for this item    ###    44

не получается объявить интерфейс в классе как public

PM   Вверх
mr.DUDA
Дата 13.7.2007, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Либо объявляем GetLine как public, без явного указания интерфейса (т.е. убираем имя интерфейса и точку), либо как метод без модификатора и с именем интерфейса через точку, как в указанном примере. Скрещивать явную и обычную реализацию интерфейса нельзя.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0509 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.