Задать вопрос
Ответы пользователя по тегу .NET
  • Переопределение метода через override. Почему не срабатывает?

    По ссылке хорошо расписано, вот основной пример про разницу между модификаторами override и new:

    using System;  
    using System.Text;  
    
    namespace OverrideAndNew  
    {  
        class Program  
        {  
            static void Main(string[] args)  
            {  
                BaseClass bc = new BaseClass();  
                DerivedClass dc = new DerivedClass();  
                BaseClass bcdc = new DerivedClass();  
    
                // The following two calls do what you would expect. They call  
                // the methods that are defined in BaseClass.  
                bc.Method1();  
                bc.Method2();  
                // Output:  
                // Base - Method1  
                // Base - Method2  
    
                // The following two calls do what you would expect. They call  
                // the methods that are defined in DerivedClass.  
                dc.Method1();  
                dc.Method2();  
                // Output:  
                // Derived - Method1  
                // Derived - Method2  
    
                // The following two calls produce different results, depending   
                // on whether override (Method1) or new (Method2) is used.  
                bcdc.Method1();  
                bcdc.Method2();  
                // Output:  
                // Derived - Method1  
                // Base - Method2  
            }  
        }  
    
        class BaseClass  
        {  
            public virtual void Method1()  
            {  
                Console.WriteLine("Base - Method1");  
            }  
    
            public virtual void Method2()  
            {  
                Console.WriteLine("Base - Method2");  
            }  
        }  
    
        class DerivedClass : BaseClass  
        {  
            public override void Method1()  
            {  
                Console.WriteLine("Derived - Method1");  
            }  
    
            public new void Method2()  
            {  
                Console.WriteLine("Derived - Method2");  
            }  
        }  
    }
    Ответ написан
    Комментировать
  • Как в c# из Task получить значение

    string s = await AccessTheWebAsync(123); либо string s = AccessTheWebAsync(123).Result;. Если задача не завершена, вызов Result заблокирует текущий поток до момента завершения задачи.
    Ответ написан
    Комментировать