вы пытались пропинговать сервер MySQL и telnet порт?
::: 3306 указывает, что ваш сервер MySQL прослушивает ipv4 и ipv6, если вы хотите получить к нему доступ через ipv6, вам нужно добавьте
bind-address = ::
для поддержки вашего доступа к ipv6
Частичные методы были представлены по подобным причинам для того, почему частичные классы были в.Net 2.
А частичный класс является тем, который может быть разделен через несколько файлов - компилятор создает их всех в один файл, когда он работает.
преимущество для этого состоит в том, что Visual Studio может предоставить графическому разработчику для части класса, в то время как кодеры продолжают работать другой.
наиболее распространенным примером является Конструктор форм. Разработчики не хотят располагать кнопки, поля ввода, и т.д. вручную большую часть времени.
#region
блок Это делает поддержание обоих намного легче. Слияния более просты и существует меньше риска конструктора форм VS, случайно отменяющего ручные изменения кодеров.
В.Net 3.5 Linq был представлен. Linq имеет разработчика DBML для создания Ваших структур данных, и это генерирует автокод.
дополнительный бит здесь - то, что код должен был предоставить методы, которые разработчики могли бы хотеть заполнить.
, Поскольку разработчики расширят эти классы (с дополнительными частичными файлами), они не могли использовать абстрактные методы здесь.
другая проблема - то, что большую часть времени эти методы привычка быть названными, и называющий пустые методы являются пустой тратой времени.
Пустые методы не оптимизированы .
, Таким образом, Linq генерирует пустые частичные методы. Если Вы не создадите свое собственное частичное для завершения их, то компилятор C# просто оптимизирует их.
Так, чтобы это могло сделать это, частичные методы всегда возвращаются пусто.
при создании нового файла Linq DBML, он автоматически сгенерирует частичный класс, что-то как [1 119]
[System.Data.Linq.Mapping.DatabaseAttribute(Name="MyDB")]
public partial class MyDataContext : System.Data.Linq.DataContext
{
...
partial void OnCreated();
partial void InsertMyTable(MyTable instance);
partial void UpdateMyTable(MyTable instance);
partial void DeleteMyTable(MyTable instance);
...
Затем в собственном частичном файле, можно расширить это:
public partial class MyDataContext
{
partial void OnCreated() {
//do something on data context creation
}
}
, Если Вы не расширяете эти методы, они выводят оптимизированное право.
Частичные методы не могут быть открытыми - поскольку затем они должны были бы быть там, чтобы другие классы звонили. Если Вы пишете, что Ваши собственные генераторы кода I видят, что они полезны, но иначе они только действительно полезны для разработчика VS.
пример я упомянул, прежде чем будет одна возможность:
//this code will get optimised out if no body is implemented
partial void DoSomethingIfCompFlag();
#if COMPILER_FLAG
//this code won't exist if the flag is off
partial void DoSomethingIfCompFlag() {
//your code
}
#endif
Другое потенциальное использование состоит в том, если бы у Вас был большой и сложный класс, пролитый через несколько файлов, то Вы могли бы хотеть частичные ссылки в файле вызова. Однако я думаю в этом случае, что необходимо рассмотреть упрощение класса сначала.
Генерация кода является одной из главных причин, они существуют и одна из главных причин использовать их.
<час>РЕДАКТИРОВАНИЕ: Даже при том, что та ссылка к информации, характерной для Visual Basic, те же основные принципы относятся к C#.
Частичные методы очень похожи в понятии на Шаблонный Метод GoF поведенческая модель ( Шаблоны разработки , p325).
Они позволяют поведению алгоритма или операции быть определенным в одном месте и реализованным или измененным, в другом месте включая расширяемость и удовлетворение требованиям заказчика. Я начал использовать частичные методы в C# 3.0 вместо шаблонных методов, потому что я думает, что код является более чистым.
Одна хорошая функция - нереализованные частичные методы не подвергаются никакому времени выполнения наверху, поскольку они компилируются далеко.
Я рассматриваю их как легкие события. Вы можете иметь файл повторно используемого кода (обычно автоматически генерируемый, но не обязательно) и для каждой реализации, просто обработать события, о которых Вы заботитесь в Вашем частичном классе. На самом деле это - то, как это привыкло в LINQ к SQL (и почему функция языка была изобретена).
Вот лучший ресурс для частичных классов в C#.NET 3.0: http://msdn.microsoft.com/en-us/library/wa80x488 (По сравнению с 85) .aspx
я стараюсь не использовать частичные классы (за исключением partials, созданного Visual Studio для файлов разработчика; это является великим). Мне более важно иметь весь код для класса в одном месте. Если Ваш класс хорошо разработан и представляет одну вещь ( единственный принцип ответственности ), то весь код, для которого одна вещь должна быть в одном месте.