Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/68: Рейтинг темы: голосов - 68, средняя оценка - 4.94
13 / 17 / 6
Регистрация: 05.09.2012
Сообщений: 210
1

Ошибка:метод расширения должен быть определен в статическом классе

21.10.2013, 11:28. Показов 14279. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Можете найти ошибку ?
метод расширения должен быть определен в статическом классе
скорее всего это из-за функции
C#
1
2
3
4
5
6
private public T[] SubArray<T>(this T[] data, int index, int length)
    {
        T[] result = new T[length];
        Array.Copy(data, index, result, 0, length);
        return result;
    }

Вот код программы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
 
 
 
class Program
{
    static Random rand = new Random();
    static int[] array;
   // static Tree MyTree = new Tree();
    
 
    static void Main(string[] args)
    {
        Console.Write("Razmer massiva = ");
        int N = Convert.ToInt32(Console.ReadLine());
        array = new int[N];
 
        // initial data
        for (int i = 0; i < array.Length; i++)
        {
            array[i] = rand.Next(10);
        }
 
        // Sorting...
        SORT.Bubble(array);
        // output array
        Program.Output();
        Console.WriteLine();
 
        int a = 0;
        int b = array.Length - 1;
 
        createrMiddleArray(array,0);
        Console.WriteLine("Введите для продолжения...");
        Console.ReadKey();
    }
 
    static void createrMiddleArray(int [] array,int i)
    {
        int len = array.Length;
        int middle = len / 2;
        string tab = "";
 
 
        for(int k=0; k<=i; k++){
            tab += "   "; 
        }
 
        if (len <= 1)
        {
            Console.Write(tab,array[0]);
        }
        else
        {
            SubArray(array, 0, middle); i++;
            Console.WriteLine(tab + array[0]); 
            SubArray(array, middle+1, len-middle);
        }
    }
        
    static void Output()
    {
        for (int i = 0; i < array.Length; i++)
        {
            Console.Write(" " + array[i].ToString());
        } 
    }
 
 
    private public T[] SubArray<T>(this T[] data, int index, int length)
    {
        T[] result = new T[length];
        Array.Copy(data, index, result, 0, length);
        return result;
    }
   
}
 
 
 
class SORT
{
    static public void Bubble(int []array)
    {
        for (int i = 0; i < array.Length; i++)
        {
            for (int j = 0; j < array.Length-1; j++)
            {
                if (array[j] > array[j + 1])
                {
                    int temp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = temp;
                }
            }
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2013, 11:28
Ответы с готовыми решениями:

Ошибка: Метод расширения должен быть определен в неуниверсальном статистическом классе
using System; using System.Collections.Generic; using System.Linq; using System.Text; using...

В классе Student определите метод InitAr (Метод должен быть статическим)
Здравствуйте. Помогите пожалуйста разобраться в задании: a. В классе Student определите метод...

Нестатический метод в статическом классе
Возник вопрос, есть такого рода пример: static class staticClass { public void...

Метод в статическом классе не работает
Я создал статический класс для удобной работы с текстурами. Вот он: static class Textures {...

8
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
21.10.2013, 11:33 2
Цитата Сообщение от Maratovich Посмотреть сообщение
C#
1
private public
Ммм?

Ну а так вам же прямым текстом говорят: метод расширения должен быть определен в статическом классе.
Метод расширения — SubArray<T>.
Класс, в котором он определен — Program:
C#
1
class Program
Не static.
0
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
21.10.2013, 12:42 3
Цитата Сообщение от Maratovich Посмотреть сообщение
C#
1
private public
"Публично закрытый" Или закрыто публичный...
0
valera_21
21.10.2013, 12:52
  #4

Не по теме:

Цитата Сообщение от tezaurismosis Посмотреть сообщение
"Публично закрытый" :D Или закрыто публичный...
закрытый публичный...

0
13 / 17 / 6
Регистрация: 05.09.2012
Сообщений: 210
21.10.2013, 13:57  [ТС] 5
Цитата Сообщение от kolorotur Посмотреть сообщение
Ну а так вам же прямым текстом говорят: метод расширения должен быть определен в статическом классе.
Метод расширения — SubArray<T>.
Класс, в котором он определен — Program:
Согласен не доглядел. Убрал
C#
1
private
поставил
C#
1
static
но ошибка не ушла
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
21.10.2013, 13:58 6
Цитата Сообщение от Maratovich Посмотреть сообщение
но ошибка не ушла
Метод расширения тоже должен быть статическим.
0
13 / 17 / 6
Регистрация: 05.09.2012
Сообщений: 210
21.10.2013, 14:01  [ТС] 7
Цитата Сообщение от kolorotur Посмотреть сообщение
Метод расширения тоже должен быть статическим.
мог бы ты изобразить в виде кода, а то я не втыкаю...
0
Эксперт .NET
17688 / 12873 / 3366
Регистрация: 17.09.2011
Сообщений: 21,138
21.10.2013, 14:02 8
C#
1
2
3
4
5
static class Program
{
   public static T[] SubArray<T>(this T[] data, int index, int length)
   {
      ...
1
13 / 17 / 6
Регистрация: 05.09.2012
Сообщений: 210
21.10.2013, 14:04  [ТС] 9
просто такой тип записи я встретил первый раз.
Спасибо
0
21.10.2013, 14:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.10.2013, 14:04
Помогаю со студенческими работами здесь

Идентификатор не определен , или левый операнд должен быть левосторонним значением
Немного не понимаю как задать а=амин , в 30 строке. #include &quot;pch.h&quot; #include &lt;iostream&gt;...

Как в классе Thread реализован вызов run(), если метод run() определён в АВТОРСКОМ классе?
И, следовательно, в классе Thread ничего не известно о вызове run? То есть, ребята, мне пришла в...

Метод расширения в универсальном классе
Доброго времени суток! К своему стыду не знаю как этот прием называется чтоб почитать в мсдн. В...

Как создать метод с использованием объекта другого метода, который определен в другом классе
В общем суть вот в чем: У меня есть 2 класса. 1 основный(Program) в нем в методе Main создается...


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

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