Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
16 / 16 / 0
Регистрация: 17.12.2010
Сообщений: 40
1

Добавить в приложение виртуальный метод

07.04.2011, 17:58. Показов 3385. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Код
using System;
using System.IO;

namespace Test
{
    class File
    {
        protected string name;// поле имя файла
        protected DateTime creationTime;// поле дата создания
        protected long length;// поле размер файла
        public string Name// свойство для получения имени
        {
            get { return name; }
        }
        public DateTime CreationTime// свойство для получения даты создания
        {
            get { return creationTime; }
        }
        public long Length// свойство для получения размера
        {
            get
            {
                return length;
            }
        }
        public File(string fName)// конструктор
        {
            if (fName != null)// проверка корректности аргументов конструктора
            {
                if (System.IO.File.Exists(fName))// если такой файл уже есть
                {
                    FileInfo temp = new FileInfo(fName);
                    name = temp.Name;
                    creationTime = temp.CreationTime;
                    length = temp.Length;
                }
                else// если файл не найден, создаем его
                {
                    Console.WriteLine("File not found, so it will be created . .");
                    StreamWriter t = new StreamWriter(System.IO.File.Create(fName));
                    FileInfo temp = new FileInfo(fName);
                    name = temp.Name;
                    creationTime = temp.CreationTime;
                    length = temp.Length;
                    t.Close();
                }
            }
            else// если аргументы конструктора некорректны, бросаем исключение
                throw new IOException("Error input data . .");
        }
        public override string ToString()// переопределяем ToString для вывода информации о файле 
        {
            return String.Format("File name: {0}\nFile creation time: {1}\nFile length: {2} bytes\n",
                name, creationTime, length);
        }
    }
    sealed class TextFile : File
    {
        private string data;
        public TextFile(string fName)
            : base(fName)
        {
            data = null;
        }
        public void AddText(string text)
        {
            data = text;
            using (StreamWriter writer = new StreamWriter(System.IO.File.Open(name, FileMode.Append)))
            {
                writer.WriteLine(data);
            }
        }
        public string GetLastAddedData()
        {
            if (data != null)
            {
                return data;
            }
            return "No data were added in this session . .";
        }
        public override string ToString()// переопределяем ToString для вывода информации о файле 
        {
            return String.Format("File name: {0}\nFile creation time: {1}\nFile recently added text: {2}\nFile length: {3} bytes",
                name, creationTime, this.GetLastAddedData(), length);
        }
    }
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Fun with File class testing . .\n");//тестируем класс
            try
            {
                Test.File f = new Test.File("first.dat");
                Console.WriteLine(f.ToString());
                Test.TextFile s = new Test.TextFile("second.txt");
                s.AddText("Some more text . .");
                Console.WriteLine(s.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            Console.ReadLine();
        }
    }
}
вот у меня такая проблема,, мне дали лабу, что бы я добавил в эту прогу виртуальный метод... а я в этом не бум бум,, помогите пожалуйста,,, а да и еще кому не сложно напишите для чего вообше исрользуеться виртуальный метод,,, заранее спасибо,,))))
 Комментарий модератора 
Вы видимо очень хотите в пожизненный бан. Можно устроить если будете игнорировать правила и замечания.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2011, 17:58
Ответы с готовыми решениями:

Добавить к классу TPoint1 виртуальный метод Draw(Canvas:TCanvas), который будет выводить изображение точки
Надо добавить к классу TPoint1 виртуальный метод Draw(Canvas:TCanvas), который будет выводить...

Виртуальный метод
Здравствуйте! Помогите, пожалуйста, найти ошибку в коде. #include "stdafx.h" class...

Виртуальный метод
class A { virtual void Print()=0; } class B : public A { virtual void Print() {...

Нужно добавить виртуальный класс
Помогите пожалуйста написать сюда любой виртуальный класс, с интерфейсами я разобрался,а с...

8
Автор FAQ
Автор FAQ
1802 / 614 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
07.04.2011, 22:00 2
Что значит виртуальный метод
1
16 / 16 / 0
Регистрация: 17.12.2010
Сообщений: 40
13.04.2011, 19:10  [ТС] 3
если бы я знал,, знаю что там присутствует слово virtual
0
Автор FAQ
Автор FAQ
1802 / 614 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
13.04.2011, 21:32 4
Цитата Сообщение от будильники Посмотреть сообщение
если бы я знал,, знаю что там присутствует слово virtual
Это не вопрос а ссылка.
0
начал понимать msdn
57 / 57 / 6
Регистрация: 11.03.2010
Сообщений: 232
13.04.2011, 21:42 5
Может в паралельный поток?
0
16 / 16 / 0
Регистрация: 17.12.2010
Сообщений: 40
15.04.2011, 19:00  [ТС] 6
нет.нужен именно виртуальный метод..
0
24 / 23 / 5
Регистрация: 14.04.2010
Сообщений: 41
16.04.2011, 12:00 7
Переопределять нужно такой метод, который есть у всех типов файлов, но реализация разная.

Например, в классе File можно объявить метод

C#
1
public virtual String GetContent() {...} //получение всего содержимого файла
В классе TextFile этот метод допустим реализован по другому, поэтому переопределяем

C#
1
public override String GetContent() {...} //получение всего содержимого файла
0
Leax
16.04.2011, 13:29
  #8

Не по теме:

будильники, а зачем ты себе репутацию искусственно накрутил с помощью "Мария Смайл"? :D

0
16 / 16 / 0
Регистрация: 17.12.2010
Сообщений: 40
16.04.2011, 19:03  [ТС] 9
Leax.. как будто это я сам себе ставлю... мне эта репутация на (3 веселых буквы) не нужна. понял????

Добавлено через 24 секунды
AstroNom спасибо!!!
0
16.04.2011, 19:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.04.2011, 19:03
Помогаю со студенческими работами здесь

Указатель на виртуальный метод
По мотивам какого-то вопроса тут возник вопрос, ответ на который я что-то не придумал. Как взять...

Итератор и виртуальный метод
Есть задачка с гугла: #include <iostream> #include <vector> class A { public: A(int n...

Из абстрактного в виртуальный метод
Помогите сделать met из абстрактного в виртуальный abstract class Graph { ...

Виртуальный метод класса
подскажите пожалуйста как переопределить виртуальный метод класса ? using System; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru