Если вы используете eclipse для подключения oracle без SID. Есть два драйвера для выбора, т. Е. Драйвер Oracle thin, а другой - другой драйвер. Выберите другие драйверы и введите имя службы в столбце базы данных. Теперь вы можете напрямую подключиться, используя имя службы без SID.
В.NET существует две категории типов, ссылочные типы и типы .
значения, Структуры , типы значения и классы ссылочные типы .
общее различие - то, что ссылочный тип жизни на "куче", и тип значения живет встроенный, то есть, везде, где это - Ваша переменная, или поле определяется.
переменная А, содержащая , тип значения содержит все значение типа значения. Для структуры, которая означает, что переменная содержит всю структуру со всеми ее полями.
переменная А, содержащая , ссылочный тип содержит указатель, или ссылка к где-то в другом месте в памяти, где фактическое значение находится.
Это обладает одним преимуществом для начала:
Внутренне, ссылочный тип , с реализованы как указатели, и зная, что, и знающий, как переменное присвоение работает, существуют другие поведенческие модели:
, Когда Вы объявляете переменные или поля, вот то, как два типа отличаются:
Экземпляры классов хранятся на управляемой "куче". Все переменные, 'содержащие' экземпляр, являются просто ссылкой на экземпляр на "куче". Передача объекта к методу приводит к копии передаваемой ссылки, не сам объект.
Структуры (технически, типы значения) хранятся везде, где они используются, во многом как тип примитива. Содержание может быть скопировано временем выполнения в любое время и не вызывая специализированного конструктора копии. Передача типа значения к методу включает копирование всего значения, снова не вызывая настраиваемого кода.
различие сделано лучше C++ / имена CLI: "касательно класса" класс, как описано сначала, "класс значения" является классом как описанной секундой. Ключевые слова "класс" и "структура", как используется C# являются просто чем-то, что должно быть изучено.
В.NET структура и объявления класса дифференцируются между ссылочными типами и оценивают типы.
, Когда Вы передаете по кругу ссылочный тип, существует только один на самом деле сохраненный. Весь код, который получает доступ к экземпляру, получает доступ к тому же.
, Когда Вы передаете по кругу значение, вводят, каждый - копия. Весь код работает над своей собственной копией.
Это можно показать с примером:
struct MyStruct
{
string MyProperty { get; set; }
}
void ChangeMyStruct(MyStruct input)
{
input.MyProperty = "new value";
}
...
// Create value type
MyStruct testStruct = new MyStruct { MyProperty = "initial value" };
ChangeMyStruct(testStruct);
// Value of testStruct.MyProperty is still "initial value"
// - the method changed a new copy of the structure.
Для класса это было бы отличающееся
class MyClass
{
string MyProperty { get; set; }
}
void ChangeMyClass(MyClass input)
{
input.MyProperty = "new value";
}
...
// Create reference type
MyClass testClass = new MyClass { MyProperty = "initial value" };
ChangeMyClass(testClass);
// Value of testClass.MyProperty is now "new value"
// - the method changed the instance passed.
, Классы могут быть ничем - ссылка может указать на пустой указатель.
Структуры являются фактическим значением - они могут быть пустыми, но никогда пустыми. Поэтому структуры всегда имеют конструктора по умолчанию без параметров - им нужно 'начальное значение'.
Ну, для начинающих структура передается значением, а не ссылкой. Структуры хороши для относительно простых структур данных, в то время как классы имеют намного больше гибкости с архитектурной точки зрения через полиморфизм и наследование.
Другие могут, вероятно, предоставить Вам больше подробной информации, чем я, но я использую структуры, когда структура, для которой я иду, проста.
Структуры являются фактическим значением - они могут быть пустыми, но никогда не пустые
, Это верно, однако также обратите внимание, что с.NET 2 структуры поддерживают версию Nullable, и C# предоставляет немного синтаксического сахара, чтобы облегчить использовать.
int? value = null;
value = 1;
Краткое изложение каждого:
Классы Только:
Структуры Только:
И Классы и Структуры:
Structure vs Class
A structure is a value type so it is stored on the stack, but a class is a reference type and is stored on the heap.
A structure doesn't support inheritance, and polymorphism, but a class supports both.
By default, all the struct members are public but class members are by default private in nature.
As a structure is a value type, we can't assign null to a struct object, but it is not the case for a class.