Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
ASDFD12
57 / 57 / 14
Регистрация: 15.09.2012
Сообщений: 542
#1

Где находится реализация интерфейсов в NET - C#

23.09.2014, 21:11. Просмотров 495. Ответов 9
Метки нет (Все метки)

Например класса String
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2014, 21:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Где находится реализация интерфейсов в NET (C#):

Реализация интерфейсов .NET
Не совсем понимаю как работает данная реализация интерфейса IComparable ...

Реализация Интерфейсов
Читая книгу "Библия С#" Фленова Михоила, я наткнулся на тему интерфейсы. В...

Наследование и реализация интерфейсов
Есть всем известный класс List<T>. Он должен реализовать интерфейс IList<T>,...

Реализация интерфейсов класса
Есть класс интерфейс: interface Transport { void...

Реализация интерфейсов. Поиск книг
Условие: В библиотеке имеется список книг. Каждая запись этого списка содержит...

Реализация интерфейсов (только свойства)
Потребовалось реализовать множественное наследование, но в шарпе такое...

9
freeba
Неадекват
1222 / 1024 / 193
Регистрация: 02.04.2010
Сообщений: 2,358
Записей в блоге: 2
Завершенные тесты: 2
23.09.2014, 21:15 #2
В классе String
0
ASDFD12
57 / 57 / 14
Регистрация: 15.09.2012
Сообщений: 542
23.09.2014, 21:20  [ТС] #3
Смотрю класс String
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
namespace System
{
    
    public sealed class String : IComparable, ICloneable, IConvertible, IComparable<string>, IEnumerable<char>, IEnumerable, IEquatable<string>
    {
             public String(char[] value);
    
        public String(sbyte* value);
      
        public String(char c, int count);
      
        public String(char* value, int startIndex, int length);
      
        public String(char[] value, int startIndex, int length);
       
        public String(sbyte* value, int startIndex, int length, Encoding enc);
Вот смотрю класс там обьявляються методы интерфейсов класа String. а как посмотреть саму реализацию интерфейсных методов?
0
insite2012
Модератор
Эксперт .NET
4794 / 3753 / 1081
Регистрация: 12.10.2013
Сообщений: 10,991
Записей в блоге: 2
23.09.2014, 23:36 #4
ASDFD12, вот часть того что есть в классе String. Методы свернуты (иначе бы несколько страниц занял код)
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
[Serializable, ComVisible(true)]
public sealed class String : IComparable, ICloneable, IConvertible, IComparable<string>, IEnumerable<char>, IEnumerable, IEquatable<string>
{
    // Fields
    private const int alignConst = 3;
    private const int charPtrAlignConst = 1;
    public static readonly string Empty;
    [NonSerialized, ForceTokenStabilization]
    private char m_firstChar;
    [NonSerialized]
    private int m_stringLength;
    private const int TrimBoth = 2;
    private const int TrimHead = 0;
    private const int TrimTail = 1;
 
    // Methods
    static String();
    [MethodImpl(MethodImplOptions.InternalCall), CLSCompliant(false), SecurityCritical]
    public extern unsafe String(char* value);
    [MethodImpl(MethodImplOptions.InternalCall), CLSCompliant(false), SecurityCritical]
    public extern unsafe String(sbyte* value);
    [MethodImpl(MethodImplOptions.InternalCall), SecuritySafeCritical]
    public extern String(char[] value);
    [MethodImpl(MethodImplOptions.InternalCall), SecuritySafeCritical]
    public extern String(char c, int count);
    [MethodImpl(MethodImplOptions.InternalCall), SecuritySafeCritical]
    public extern String(char[] value, int startIndex, int length);
    [MethodImpl(MethodImplOptions.InternalCall), SecurityCritical, CLSCompliant(false)]
    public extern unsafe String(char* value, int startIndex, int length);
    [MethodImpl(MethodImplOptions.InternalCall), CLSCompliant(false), SecurityCritical]
    public extern unsafe String(sbyte* value, int startIndex, int length);
    [MethodImpl(MethodImplOptions.InternalCall), CLSCompliant(false), SecurityCritical]
    public extern unsafe String(sbyte* value, int startIndex, int length, Encoding enc);
    public object Clone();
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public static int Compare(string strA, string strB);
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public static int Compare(string strA, string strB, bool ignoreCase);
    [SecuritySafeCritical]
    public static int Compare(string strA, string strB, StringComparison comparisonType);
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public static int Compare(string strA, string strB, bool ignoreCase, CultureInfo culture);
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public static int Compare(string strA, string strB, CultureInfo culture, CompareOptions options);
    public static int Compare(string strA, int indexA, string strB, int indexB, int length);
    public static int Compare(string strA, int indexA, string strB, int indexB, int length, bool ignoreCase);
    [SecuritySafeCritical]
    public static int Compare(string strA, int indexA, string strB, int indexB, int length, StringComparison comparisonType);
    public static int Compare(string strA, int indexA, string strB, int indexB, int length, bool ignoreCase, CultureInfo culture);
    public static int Compare(string strA, int indexA, string strB, int indexB, int length, CultureInfo culture, CompareOptions options);
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public static int CompareOrdinal(string strA, string strB);
    [SecuritySafeCritical, TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public static int CompareOrdinal(string strA, int indexA, string strB, int indexB, int length);
    [SecuritySafeCritical]
    private static int CompareOrdinalHelper(string strA, string strB);
    [SecuritySafeCritical]
    private static int CompareOrdinalIgnoreCaseHelper(string strA, string strB);
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public int CompareTo(object value);
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public int CompareTo(string strB);
    public static string Concat(params object[] args);
    [ComVisible(false)]
    public static string Concat<T>(IEnumerable<T> values);
    public static string Concat(params string[] values);
    [ComVisible(false)]
    public static string Concat(IEnumerable<string> values);
    public static string Concat(object arg0);
    public static string Concat(object arg0, object arg1);
    [SecuritySafeCritical]
    public static string Concat(string str0, string str1);
    public static string Concat(object arg0, object arg1, object arg2);
    [SecuritySafeCritical]
    public static string Concat(string str0, string str1, string str2);
    [CLSCompliant(false), SecuritySafeCritical]
    public static string Concat(object arg0, object arg1, object arg2, object arg3, __arglist);
    [SecuritySafeCritical]
    public static string Concat(string str0, string str1, string str2, string str3);
    [SecuritySafeCritical]
    private static string ConcatArray(string[] values, int totalLength);
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public bool Contains(string value);
    [SecuritySafeCritical]
    internal byte[] ConvertToAnsi(int iMaxDBCSCharByteSize, bool fBestFit, bool fThrowOnUnmappableChar, out int cbLength);
    [SecuritySafeCritical]
    public static string Copy(string str);
    [SecuritySafeCritical]
    public void CopyTo(int sourceIndex, char[] destination, int destinationIndex, int count);
    [SecurityCritical]
    private static unsafe string CreateString(sbyte* value, int startIndex, int length, Encoding enc);
    [SecurityCritical]
    internal static unsafe string CreateStringFromEncoding(byte* bytes, int byteLength, Encoding encoding);
    [SecurityCritical]
    private string CreateTrimmedString(int start, int end);
    [SecuritySafeCritical]
    private string CtorCharArray(char[] value);
    [SecuritySafeCritical]
    private string CtorCharArrayStartLength(char[] value, int startIndex, int length);
    [SecuritySafeCritical]
    private string CtorCharCount(char c, int count);
    [SecurityCritical]
    private unsafe string CtorCharPtr(char* ptr);
    [ForceTokenStabilization, SecurityCritical]
    private unsafe string CtorCharPtrStartLength(char* ptr, int startIndex, int length);
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    internal bool EndsWith(char value);
    public bool EndsWith(string value);
    [ComVisible(false), SecuritySafeCritical]
    public bool EndsWith(string value, StringComparison comparisonType);
    public bool EndsWith(string value, bool ignoreCase, CultureInfo culture);
    [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
    public override bool Equals(object obj);
    [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail), TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public bool Equals(string value);
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public static bool Equals(string a, string b);
    [SecuritySafeCritical]
    public bool Equals(string value, StringComparison comparisonType);
    [SecuritySafeCritical]
    public static bool Equals(string a, string b, StringComparison comparisonType);
    [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail), SecuritySafeCritical]
    private static bool EqualsHelper(string strA, string strB);
    [MethodImpl(MethodImplOptions.InternalCall), SecurityCritical]
    internal static extern string FastAllocateString(int length);
    [SecuritySafeCritical]
    private static void FillStringChecked(string dest, int destPos, string src);
    public static string Format(string format, object arg0);
    public static string Format(string format, params object[] args);
    [SecuritySafeCritical]
    public static string Format(IFormatProvider provider, string format, params object[] args);
    public static string Format(string format, object arg0, object arg1);
    public static string Format(string format, object arg0, object arg1, object arg2);
    public CharEnumerator GetEnumerator();
    [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail), SecuritySafeCritical]
    public override int GetHashCode();
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public TypeCode GetTypeCode();
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public int IndexOf(char value);
    public int IndexOf(string value);
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public int IndexOf(char value, int startIndex);
    public int IndexOf(string value, int startIndex);
    [SecuritySafeCritical, TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public int IndexOf(string value, StringComparison comparisonType);
0
ASDFD12
57 / 57 / 14
Регистрация: 15.09.2012
Сообщений: 542
23.09.2014, 23:45  [ТС] #5
Как видно это обьявление имплементированых интерфейсов, но определение этих метода отсутствует.Мне нужно посмотреть реализацию.
0
insite2012
Модератор
Эксперт .NET
4794 / 3753 / 1081
Регистрация: 12.10.2013
Сообщений: 10,991
Записей в блоге: 2
23.09.2014, 23:50 #6
Цитата Сообщение от ASDFD12 Посмотреть сообщение
определение этих метода отсутствует
ASDFD12, я разве не по русски написал?
Цитата Сообщение от insite2012 Посмотреть сообщение
вот часть того что есть в классе String. Методы свернуты (иначе бы несколько страниц занял код)
Хотите посмотреть - берите .NET Reflector и ковыряйте.
0
ASDFD12
57 / 57 / 14
Регистрация: 15.09.2012
Сообщений: 542
23.09.2014, 23:54  [ТС] #7
Хорошо, разверни тогда мне метод на 146 строке и покажи что он делает. Думаю ты увидешь только комментарии к сигнатуре метода. Лично я увидел только его.
0
insite2012
Модератор
Эксперт .NET
4794 / 3753 / 1081
Регистрация: 12.10.2013
Сообщений: 10,991
Записей в блоге: 2
23.09.2014, 23:59 #8
Цитата Сообщение от ASDFD12 Посмотреть сообщение
Думаю
Плохо думаете. Какой из них интересует?
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
[TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public int IndexOf(char value)
    {
        return this.IndexOf(value, 0, this.Length);
    }
 
    public int IndexOf(string value)
    {
        return this.IndexOf(value, StringComparison.CurrentCulture);
    }
 
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public int IndexOf(char value, int startIndex)
    {
        return this.IndexOf(value, startIndex, this.Length - startIndex);
    }
 
    public int IndexOf(string value, int startIndex)
    {
        return this.IndexOf(value, startIndex, StringComparison.CurrentCulture);
    }
 
    [SecuritySafeCritical, TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public int IndexOf(string value, StringComparison comparisonType)
    {
        return this.IndexOf(value, 0, this.Length, comparisonType);
    }
 
    [MethodImpl(MethodImplOptions.InternalCall), SecuritySafeCritical]
    public extern int IndexOf(char value, int startIndex, int count);
    public int IndexOf(string value, int startIndex, int count)
    {
        if ((startIndex < 0) || (startIndex > this.Length))
        {
            throw new ArgumentOutOfRangeException("startIndex", Environment.GetResourceString("ArgumentOutOfRange_Index"));
        }
        if ((count < 0) || (count > (this.Length - startIndex)))
        {
            throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_Count"));
        }
        return this.IndexOf(value, startIndex, count, StringComparison.CurrentCulture);
    }
 
    [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
    public int IndexOf(string value, int startIndex, StringComparison comparisonType)
    {
        return this.IndexOf(value, startIndex, this.Length - startIndex, comparisonType);
    }
 
    public int IndexOf(string value, int startIndex, int count, StringComparison comparisonType)
    {
        if (value == null)
        {
            throw new ArgumentNullException("value");
        }
        if ((startIndex < 0) || (startIndex > this.Length))
        {
            throw new ArgumentOutOfRangeException("startIndex", Environment.GetResourceString("ArgumentOutOfRange_Index"));
        }
        if ((count < 0) || (startIndex > (this.Length - count)))
        {
            throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_Count"));
        }
        switch (comparisonType)
        {
            case StringComparison.CurrentCulture:
                return CultureInfo.CurrentCulture.CompareInfo.IndexOf(this, value, startIndex, count, CompareOptions.None);
 
            case StringComparison.CurrentCultureIgnoreCase:
                return CultureInfo.CurrentCulture.CompareInfo.IndexOf(this, value, startIndex, count, CompareOptions.IgnoreCase);
 
            case StringComparison.InvariantCulture:
                return CultureInfo.InvariantCulture.CompareInfo.IndexOf(this, value, startIndex, count, CompareOptions.None);
 
            case StringComparison.InvariantCultureIgnoreCase:
                return CultureInfo.InvariantCulture.CompareInfo.IndexOf(this, value, startIndex, count, CompareOptions.IgnoreCase);
 
            case StringComparison.Ordinal:
                return CultureInfo.InvariantCulture.CompareInfo.IndexOf(this, value, startIndex, count, CompareOptions.Ordinal);
 
            case StringComparison.OrdinalIgnoreCase:
                return TextInfo.IndexOfStringOrdinalIgnoreCase(this, value, startIndex, count);
        }
        throw new ArgumentException(Environment.GetResourceString("NotSupported_StringComparison"), "comparisonType");
    }
0
ASDFD12
57 / 57 / 14
Регистрация: 15.09.2012
Сообщений: 542
24.09.2014, 00:03  [ТС] #9
Спасибо. У меня в visual studio почему то не показывает. Показывает только комментарии.
0
insite2012
Модератор
Эксперт .NET
4794 / 3753 / 1081
Регистрация: 12.10.2013
Сообщений: 10,991
Записей в блоге: 2
24.09.2014, 00:05 #10
Цитата Сообщение от ASDFD12 Посмотреть сообщение
в visual studio почему то не показывает.
Цитата Сообщение от insite2012 Посмотреть сообщение
берите .NET Reflector
Разницу замечаете?
0
24.09.2014, 00:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2014, 00:05
Привет! Вот еще темы с решениями:

Реализация нескольких интерфейсов в одном классе
добрый вечер, пожалуйста, помогите разобраться. есть средство передвижения,...

Реализация интерфейсов
Здравствуйте! У меня возник следующий вопрос: &quot;Если мы знаем, что любой класс,...

Реализация интерфейсов IEnumerable и IEnumerator для перебора статей
В классе Magazine: реализовать интерфейс System.Collections.IEnumerable для...

Применение стандартных интерфейсов в собственных классах. Реализация итератора для класса. Создание клона
Класс “Многочлен ax^2+bx+c”. Поля – a,b,c, а также имя многочлена и его id....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru