Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2015, 22:49   #1
hoz
Форумчанин
 
Аватар для hoz
 
Регистрация: 29.06.2013
Сообщений: 132
По умолчанию Параметры интерфейсного типа

Начал я изучать тему интерфейсов. Попался пример:
PHP код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 
ICloneableExample
{
    class 
Program
    
{
        static 
void Mainstring[] args )
        {
            
Console.WriteLine("***** A First Look at Interfaces *****\n");

            
// All of these classes support the ICloneable interface.
            
string myStr "Hello";
            
OperatingSystem unixOS = new OperatingSystem(PlatformID.Unix, new Version());
            
System.Data.SqlClient.SqlConnection sqlCnn =
              new 
System.Data.SqlClient.SqlConnection();

            
// Therefore, they can all be passed into a method taking ICloneable.
            
CloneMe(myStr);
            
CloneMe(unixOS);
            
CloneMe(sqlCnn);
            
Console.ReadLine();
        }

        private static 
void CloneMeICloneable c )
        {
            
// Clone whatever we get and print out the name.
            
object theClone c.Clone();
            
Console.WriteLine("Your clone is a: {0}",
              
theClone.GetType().Name);
        }
    }

Тут в методе:
PHP код:
 private static void CloneMeICloneable c )
        {
            
// Clone whatever we get and print out the name.
            
object theClone c.Clone();
            
Console.WriteLine("Your clone is a: {0}",
              
theClone.GetType().Name);
        } 
В параметрах непонятная ситуация. Почему рядом с параметром ICloneable передаются через c различные объекты? Я привык, что если в параметре, например:
PHP код:
private static void CloneMeint c 
Значит c будет иметь тип int, а соответственно в предыдущем примере вместо с по логике должен быть не любой объект, а интерфейс. Но, судя по всему, это не так.
hoz вне форума Ответить с цитированием
Старый 25.02.2015, 23:01   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Да сколько можно уже одни и те же вопросы задавать.

Код:
BaseClass b = new DerivedClass()
вас же не удивляет уже?

Ну вот и так же как DerivedClass является (is-a) BaseClass, эти объекты являются ICloneable.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 26.02.2015, 00:05   #3
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Цитата:
Да сколько можно уже одни и те же вопросы задавать
да уж, как горох об стену

автор вы уже или разберитесь в чем ни будь или ну его это программирование.
lomastr_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализовать программу через параметры-значений и параметры-ссылок bufalo C# (си шарп) 3 14.12.2011 17:10
ПАРАМЕТРЫ-КОНСТАНТЫ, НЕТИПИЗИРОВАННЫЕ ПАРАМЕТРЫ ПОДПРОГРАММ, МАССИВЫ И СТРОКИ ОТКРЫТОГО ТИПА Юрий62 Помощь студентам 1 04.12.2011 14:09
Параметры запуcка. как обрабатывать параметры вида -somecmd "?" Человек_Борща Общие вопросы Delphi 1 15.01.2011 15:48
ПАРАМЕТРЫ-КОНСТАНТЫ, НЕТИПИЗИРОВАННЫЕ ПАРАМЕТРЫ ПОДПРОГРАММ, МАССИВЫ И СТРОКИ ОТКРЫТОГО ТИПА Kira09 Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2010 17:28