-
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
internal static object CreateDefaultEqualityComparer(Type type)
{
Debug.Assert(type != null && type is RuntimeType);
object result = null;
var runtimeType = (RuntimeType)type;
// Specialize for byte so Array.IndexOf is faster.
if (type == typeof(byte))
{
result = new ByteEqualityComparer();
}
// If T implements IEquatable<T> return a GenericEqualityComparer<T>
else if (typeof(IEquatable<>).MakeGenericType(type).IsAssignableFrom(type))
{
result = CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(GenericEqualityComparer<int>), runtimeType);
}
// Nullable does not implement IEquatable<T?> directly because that would add an extra interface call per comparison.
// Instead, it relies on EqualityComparer<T?>.Default to specialize for nullables and do the lifted comparisons if T implements IEquatable.
else if (type.IsGenericType)
{
if (type.GetGenericTypeDefinition() == typeof(Nullable<>))
{
result = TryCreateNullableEqualityComparer(runtimeType);
}
}
// The equality comparer for enums is specialized to avoid boxing.
else if (type.IsEnum)
{
result = TryCreateEnumEqualityComparer(runtimeType);
}
return result ?? CreateInstanceForAnotherGenericParameter((RuntimeType)typeof(ObjectEqualityComparer<object>), runtimeType);
}
Код взят из CoreCLR mscorlib сырцов.
Внимание вопрос. Нахерна было писать эту обосгость когда данный метод легко делается генериком без какого либо вызова "невидимого" кода?
вот пример как все должно было быть
```
internal static object CreateDefaultEqualityComparer<T>()
{
// Specialize for byte so Array.IndexOf is faster.
if (typeof(T) == typeof(byte))
{
result = new ByteEqualityComparer();
}
// If T implements IEquatable<T> return a GenericEqualityComparer<T>
else if (typeof(IEquatable<T>).IsAssignableFrom( typeof(T)))
{
result new GenericEqualityComparer<T>();
}
// Nullable does not implement IEquatable<T?> directly because that would add an extra interface call per comparison.
// Instead, it relies on EqualityComparer<T?>.Default to specialize for nullables and do the lifted comparisons if T implements IEquatable.
else if (typeof(T).IsGenericType)
{
if (typeof(T).GetGenericTypeDefinition() == typeof(Nullable<>))
{
result = new NullableEqualityComparer<T>();
}
}
// The equality comparer for enums is specialized to avoid boxing.
else if (typeof(T).IsEnum)
{
result = TryCreateEnumEqualityComparer<T>();
}
return result ?? new ObjectEqualityComparer<T>();
}
```
ASD_77,
07 Августа 2017
-
+4
- 1
http://blog.extremehacking.org/blog/2017/07/31/hungarian-hacker-arrested-pressing-f12/
Вкратце: в Будапеште за миллион баксов набыдлокодили систему продажи билетов на общественный транспорт с кучей багов, как например поле с суммой было readonly, но если поправить html в браузере, то можно цену поменять, а на бэкенде никто не стал проверку суммы делать. Пацанчик этот баг нашел, написал в саппорт, а через 2 недели его мусора загребли.
j123123,
05 Августа 2017
-
+1
- 1
- 2
- 3
CoolIntf::GetInstance().DoSomething();
CoolIntf::GetInstance().DoSomethingElse();
CoolIntf::GetInstance().DoAnything()
для случая когда GetInstance() не инлайнится, кто-нибудь в крестах какое решение (без ручного введения временной переменной) для такого кода придумал?
единственное что нашел это вот это: https://stackoverflow.com/a/2279253 .
потому что "with" слишком общее слово которое в ж не гуглится.
Dummy00001,
04 Августа 2017
-
+8
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
Объявление метода в интерфейсе:
@NotNull
List<ServicePojo> getAvailableServices(boolean withoutOffer);
реализация:
@NotNull
@Override
public List<ServicePojo> getAvailableServices(boolean withOfferService) {
...
}
moonson,
04 Августа 2017
-
−1
- 1
- 2
- 3
- 4
internal static object CopyImmutableSortedDictionary<K, V>(object original, ICopyContext context)
{
return original;
}
Microsoft Orleans https://github.com/dotnet/orleans
Копирование объекта в 2к17
ClockworkAlex,
04 Августа 2017
-
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
public void GetMapping(DbObject obj, IEnumerable<DbObject> map = null, params string[] additional)
{
Mapper m = Mapper.Get(obj.DialectType);
switch (m.MapperType)
{
case MapperType.SST:
m.Initialize(null, additional);
break;
case MapperType.SSM:
m.Initialize(null, additional);
break;
default:
throw new ArgumentException();
}
// применение: этот метод возвращает List<Tupple<DbObject, DbObject>>
m.GetMappingByDialect(obj, map);
}
public enum MapperType
{
SST,
SSM,
}
Во-вторник - этот код, выбил меня из рабочего процесса на весь день ...
spyrytus,
04 Августа 2017
-
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
#include <stdio.h>
#include <string.h>
#include <http_fetcher.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
if(argc != 2) { printf("Using: %s [url]\n", argv[0]); return 1; }
http_setTimeout(15);
if( http_setUserAgent("Mozilla/5.0 (Linux; Android 7.0; Pixel C Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.98 Safari/537.36") == -1)
http_perror("setUserAgent");
http_setRedirects(15);
http_setReferer("http://no-site.ru/");
char *file_name = "";
if( http_parseFilename(argv[1], &file_name) == -1)
{ http_perror("parseFilename"); return 1; }
printf("Download file: %s\n", file_name);
char *buff = malloc(5000);
if( http_fetch(argv[1], &buff) == -1)
{ http_perror("fetch"); return 1; }
printf("Write on file..\n");
FILE *f = fopen(file_name, "a");
fprintf(f, "%s", buff);
fclose(f);
printf("Successfully written to file \"%s\"\n", file_name);
return 0;
}
Блять писал программу а она нихуя не контачит, ёбанная библиотека https не поддерживает!
Не используйте эту говно библиотеку
Bro-C,
03 Августа 2017
-
+2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
#define UM8(CONST_FLOAT,CHISLO_INT) \
((CONST_FLOAT+1.0/16)<(1.0/8))?((CHISLO_INT*0)>>3):\
(((CONST_FLOAT+1.0/16)<(2.0/8))?((CHISLO_INT*1)>>3):\
(((CONST_FLOAT+1.0/16)<(3.0/8))?((CHISLO_INT*2)>>3):\
(((CONST_FLOAT+1.0/16)<(4.0/8))?((CHISLO_INT*3)>>3):\
(((CONST_FLOAT+1.0/16)<(5.0/8))?((CHISLO_INT*4)>>3):\
(((CONST_FLOAT+1.0/16)<(6.0/8))?((CHISLO_INT*5)>>3):\
(((CONST_FLOAT+1.0/16)<(7.0/8))?((CHISLO_INT*6)>>3):\
(((CONST_FLOAT+1.0/16)<(8.0/8))?((CHISLO_INT*7)>>3):\
(CHISLO_INT)\
)\
)\
)\
)\
)\
)\
)
https://habrahabr.ru/post/334758/
inho,
02 Августа 2017
-
0
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int checkFile(char *s)
{
return ( open(s, O_RDONLY, 0) == -1) ? 0 : 1;
}
int main(int argc, char *argv[])
{
if(argc != 2) { printf("Тут один аргумент важен хуле\n"); return 1; }
if(checkFile(argv[1]))
{
int fd = open(argv[1], O_RDONLY, 0);
char buffer[1024];
read(fd, &buffer, sizeof(buffer));
printf("%s\n", buffer);
if( close(fd) == -1) perror("close");
}
else
printf("Файл не существует\n");
return 0;
}
Моя альтернатива программе cat, отсасывай cat ябучий!!
Bro-C,
02 Августа 2017
-
+2
- 1
- 2
- 3
- 4
- 5
Если ЭтоНовыйОбъект Тогда
Если Найти(НРег(ЭтотОбъект.ТекстЗаявки),"принтер") > 0 Тогда
ЭтотОбъект.ВидОбращения = Справочники.ИТ_ПричинаОбращения.НайтиПоНаименованию("Принтер");
КонецЕсли;
КонецЕсли;
Если в тексте заявки есть "принтер", значит это по принтеру, если в тексте "Замените картридж" - peaceDa рулю.
M1CE,
02 Августа 2017