М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
dpichuzhkina
dpichuzhkina
29.01.2022 08:42 •  Информатика

В чем разница между простыми и статическими методами в с# (си шарп)

👇
Ответ:
Lizulinka
Lizulinka
29.01.2022

Объяснение:

Метод - це невелика підпрограма, яка виконує, в ідеалі, тільки одну функцію. Методи дозволяють скоротити обсяг коду. Методи разом з полями, є основними членами класу.Раніше, ми вже розглядали методи в уроці Функції в Сі-шарп, але зараз ми розглянемо їх під іншим кутом. В тому уроці ми розглядали статичні методи, а в цьому поговоримо про прості, і про різницю між ними.

Статичний метод - це метод, який не має доступу до полів об'єкта, і для виклику такого методу не потрібно створювати екземпляр (об'єкт) класу, в якому він оголошений.

Простий метод - це метод, який має доступ до даних об'єкта, і його виклик виконується через об'єкт. Прості методи служать для обробки внутрішніх даних об'єкта.

Наведу приклад використання простого методу. Клас Телевізор, у нього є поле switchedOn, яке відображає стан включений / виключений, і два методи - включення і виключення:

class TVSet

{

private bool switchedOn;

public void SwitchOn()

{

switchedOn = true;

}

public void SwitchOff()

{

switchedOn = false;

}

}

class Program

{

static void Main(string[] args)

{

TVSet myTV = new TVSet();

myTV.SwitchOn(); // включаємо телевізор, switchedOn = true;

myTV.SwitchOff(); // виключаємо телевізор, switchedOn = false;

}

}

Щоб викликати простий метод, перед його ім'ям, вказується ім'я об'єкта. Для виклику статичного методу необхідно вказувати ім'я класу.

Статичні методи, зазвичай, виконують якусь глобальну, загальну функцію, обробляють «зовнішні дані». Наприклад, сортування масиву, обробка рядка, зведення числа в ступінь і інше.

Приклад статичного методу, який обрізає рядок до вказаної довжини, і додає крапки:

class StringHelper

{

public static string TrimIt(string s, int max)

{

if (s == null)

return string.Empty;

if (s.Length <= max)

return s;

return s.Substring(0, max) + "...";

}

}

class Program

{

static void Main(string[] args)

{

string s ="Дуже довгий рядок, який необхідно обрізати до зазначеної довжини і додати три крапки";

Console.WriteLine(StringHelper.TrimIt(s, 20)); //"Дуже довгий рядок ..."

Console.ReadLine();

}

}

Статичний метод не має доступу до нестатичних полів класу:

class SomeClass

{

private int a;

private static int b;

public static void SomeMethod()

{

a=5; // помилка

b=10; // допустимо

}

}

4,4(31 оценок)
Ответ:
алик137
алик137
29.01.2022

Статический метод – это метод, который не имеет доступа к полям объекта, и для вызова такого метода не нужно создавать экземпляр (объект) класса, в котором он объявлен.

Простой метод – это метод, который имеет доступ к данным объекта, и его вызов выполняется через объект.

4,4(48 оценок)
Открыть все ответы
Ответ:
ShipunovaDaria
ShipunovaDaria
29.01.2022

static void Main(string[] args)

       {

           int N = 0;

           Console.Write("Введите размерность массива: ");

           N = Convert.ToInt32(Console.ReadLine());

           double[,] mas = new double[N, N];

           double sum = 0;

           int viborStroki = 0;

           Console.Write("Введите номер строки: ");

           viborStroki = Convert.ToInt32(Console.ReadLine());

           Random rnd = new Random();

           for(int i = 0; i < N; i++)

           {

               for(int j = 0; j<N; j++)

               {

                   mas[i, j] = rnd.Next(0, 10);

               }

           }

           for (int i = viborStroki - 1; i < viborStroki; i++)

           {

               for(int j = 0; j < N; j++)

               {

                   sum += Math.Pow(mas[i, j], 2);

               }

           }

           Console.WriteLine();

           Console.Write("Массив: ");

           Console.WriteLine();

           for (int i = 0; i < N; i++)

           {

               for (int j = 0; j < N; j++)

               {

                   Console.Write(String.Format("{0,3}", mas[i, j]));

               }

               Console.WriteLine();

           }

           Console.Write("Сумма квадратов элементов {0}-й строки = ", viborStroki);

           Console.Write("{0}", sum);

           Console.ReadKey();

       }

Объяснение:

Вводим размерность массива, вводим номер строки, программа считает сумму квадратов элементов введённой строки.

4,4(59 оценок)
Ответ:
nastyamashkanc
nastyamashkanc
29.01.2022

Program asd;

uses crt;

var a,b,c,max:integer; r:real;

begin

 Write('Введите число A: '); 

Readln(a);

 Write('Введите число B: '); 

Readln(b); 

Write('Введите число C: '); 

Readln(c); 

If  a>=b then max:=a

 else 

 max:=b;   

 If c>max then

max:=c; 

r:=a+b+c;

 If (A>B) and (B>C) and (C>0) then

 Writeln('A= ',a*2,' B= ',b*2,' C= ',c*2);

 If (A<0) and  (B<0) and (C<0) and (A<>B) and (B<>C) and (C<>A)  then

 begin   

A:=max;   

 B:=max; 

 C:=max; 

Writeln('A= ',a,' B= ',b,' C= ',c); 

  end   

else   

 Writeln('Symma: ',r);

end

Объяснение:

Program asd;

uses crt;

var a,b,c,max:integer; r:real;

begin

 Write('Введите число A: '); 

Readln(a);

 Write('Введите число B: '); 

Readln(b); 

Write('Введите число C: '); 

Readln(c); 

If  a>=b then max:=a

 else 

 max:=b;   

 If c>max then

max:=c; 

r:=a+b+c;

 If (A>B) and (B>C) and (C>0) then

 Writeln('A= ',a*2,' B= ',b*2,' C= ',c*2);

 If (A<0) and  (B<0) and (C<0) and (A<>B) and (B<>C) and (C<>A)  then

 begin   

A:=max;   

 B:=max; 

 C:=max; 

Writeln('A= ',a,' B= ',b,' C= ',c); 

  end   

else   

 Writeln('Symma: ',r);

end

4,8(10 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ