0 / 0 / 0
Регистрация: 03.06.2017
Сообщений: 41
1

Null в обобщенном типе

15.08.2017, 18:17. Показов 790. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите как вернуть null во втором перегруженном методе Get (50 строка)

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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp142
{
    class Program
    {
        static void Main(string[] args)
        {
            
        }
    }
 
    class BTS<Key, Value> where Key : IComparable<Key>
    {
        private Node root; //корень ДБП
 
        private class Node
        {
            public Key key;          //ключ
            public Value val;        //связанное значение
            public Node left, right; //ссылки на поддеревья
            public int N;            //к-во узлов в поддереве с этим корнем
            public Node(Key key, Value val, int N)
            {
                this.key = key;
                this.val = val;
                this.N = N; 
            }
        }
 
        public int Size()
        {
            return Size(root);
        }
        private int Size(Node x)
        {
            if (x == null) return 0;
            else return x.N;
        }
 
        public Value Get(Key key)
        {
            return Get(root, key);
        }
 
        private Nullable<Value> Get(Node x, Key key)
        {
            if (x == null) return null;
            int cmp = key.CompareTo(x.key);
            if (cmp < 0) return Get(x.left, key);
            else if (cmp > 0) return Get(x.right, key);
            else return x.val;
        }
 
        public void Put(Key key, Value val)
        {
            root = Put(root, key, val);
        }
 
        private Node Put(Node x, Key key, Value val)
        {
            if (x == null) return new Node(key, val, 1);
            int cmp = key.CompareTo(x.key);
            if (cmp < 0)
                x.left = Put(x.left, key, val);
            else if (cmp > 0)
                x.right = Put(x.right, key, val);
            else x.val = val;
            x.N = Size(x.left) + Size(x.right) + 1;
            return x;
               
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2017, 18:17
Ответы с готовыми решениями:

Блин, для ЧЕГО НУЖНА Функция CREATE TABLE invoice( inv_id INT AUTO_INCREMENT NOT NULL , usr_id INT NOT NULL , prod_id INT NOT NULL , quantity INT NOT
Погуглив, так и не смог толком понять. Есть тут ГУРУ по mysql Которые могут на пальцах или на...

Преобразование типов в обобщенном методе
Всем доброго времени суток. public static void Metod&lt;T&gt;(T a1) where T: struct // Какое...

Разные типы в обобщенном методе
Здравствуйте. Хочу написать следующий метод: подается массив типа int или string или object и тд,...

Применение ковариантности в обобщенном интерфейсе
using System; using System.Collections.Generic; using System.Linq; using System.Text; using...

1
Эксперт .NET
17215 / 12669 / 3321
Регистрация: 17.09.2011
Сообщений: 20,941
15.08.2017, 18:22 2
Цитата Сообщение от Bond_2005 Посмотреть сообщение
как вернуть null во втором перегруженном методе Get (50 строка)
Либо поставить ограничение class на тип Value и сделать тип возвращаемого значения Value, либо поставить ограничение struct на тип Value.

На всякий случай: https://www.cyberforum.ru/post2279116.html
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2017, 18:22
Помогаю со студенческими работами здесь

Перегрузка операторов в обобщенном классе
Всем привет. Вопрос такой: &quot;Можно ли в обобщённом классе как-нибудь перегрузить операторы *, -,...

Ограничения типа в обобщённом интерфейсе ICopy<T>
Создал такой интерфейс /// &lt;summary&gt;Интерфейс для создания копии экземпляра того же типа ...

Конфликт двух типов в обобщённом классе
Столкнулся с проблемой и не могу решить как её лучше решить. Показываю на примере. Есть некий...

Как суммировать переменные Т в обобщенном классе?
Компилятор пишет что невозможно применить оператор + к переменным типа Т. Вот код,в котором...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru