10 советов и хитростей в C# и Microsoft Visual Studio
C# великий язык. Он относительно легок в изучении и имеет более простой синтаксис чем С++ и Java. В течении 10 лет он по прежнему является сильным конкурентом. Он улучшался с каждым годом, приобретая новые возможности с каждой новой версией. C# не разочаровал сообщества разработчиков.
Но начнем.
1. Environment.NewLine
Знаете ли вы, что это свойство не зависит от платформы и позволяет выводить символы новой строки в соответствии с платформой?
Console.WriteLine("My Tips On ,{0}C#", Environment.NewLine);
2. Псевдоним пространства имен (namespace)
Знаете ли вы, что есть возможность заменить длинные имена пространств имен короткими псевдонимами? И вы сталкивались с ситуацией, когда при объявлении экземпляра класса необходимо задавать полное пространство имен, во избежание двусмысленности. Посмотрите на пример ниже, где используется библиотека, созданная с расширением .NET Framework
using System.Web.UI.WebControls; using MyGenericLibrary.UserControls; /* предположим, у вас есть контрол TextBox в обоих пространствах имен, и вы должны полностью указать объект класса с определением полного пространства имен. Чтобы избежать этого, вы можете определить псевдоним пространства имен. Сделайте как показано ниже: */ using System.Web.UI.WebControls; using mc = MyGenericLibrary.UserControls; /*и используйте */ mc.TextBox textbox = new mc.TextBox();
3. Атрибут DebuggerBrowsable.
Каждый разработчик C# делает отладку в той или иной точке программы. Данный атрибут является мощным средством в контроле поведении объекта в процессе отладки. Процесс отладки включает в себя отображение объекта отладки в небольшом окне всплывающей подсказки.Это можно использовать в скрытии private или других объектов, отображение которых в окне отладки бесполезно и только мешает. Например, при отладке любого класса вы будете видеть все скрытые переменные в окне отладчика. Вы можете скрыть их используя атрибут [DebuggerBrowsable(DebuggerBrowsableState.Never)]:
public class MyClass { private string _id; public string InternalID { get { return _id; } set { _id = value; } } }
[DebuggerBrowsable(DebuggerBrowsableState.Never)] public class MyClass { private string _id; public string InternalID { get { return _id; } set { _id = value; } } }
Этот атрибут позволяет отображать описание переменной. Это помогает тем, кто будет работать с вашим исходным кодом в будущем. Атрибут очень просто использовать. Пример можно увидеть в следующем коде:
public class MyClass { [DebuggerDisplay("Value = {myVariable}")] public string myVariable = "mydisplay"; }
5. Создание виртуальной папки для проекта
Вы можете дать возможность каждому разработчику Вашей команды создать виртуальный каталог с таким же названием как у проекта. Этот трюк с Microsoft Studio IDE чрезвычайно полезен в синхронизации кода межу несколькими машинам C# разработчиков.Кликните правой кнопкой мыши на проекте и в выпадающем списке выберите “Свойства” (“Properties”). Перейдите на вкладку Web и отметьте “Использовать локальные IIS веб сервер” (“Use Local IIS Web Server”) задайте путь.
Внесите изменения и проверьте файл проекта. Всем разработчикам, кто использует данный файл проекта, будет отправлен запрос на создание директории с таким же названием как у проекта.
6. Изменение платформы приложения
Вы можете изменить платформу приложения. Вы можете выбирать из двух вариантов: 32-битной и 64 – битной разрядной среды.
Кликните правой кнопкой мыши на проекте и в выпадающем списке выберите “Свойства” (“Properties”). Перейдите на вкладку “Build”и выберите соответствующую платформу.
7. Окно определения кода
Это окно позволяет перейти к месту Определению объекта. Нажмите клавишу F12 для быстрого перехода к месту определения объекта. Попробуйте сделать это в вашем редакторе прямо сейчас и вы не будете разочарованы.
Это всего лишь “ОКНО ОПРЕДЕЛЕНИЯ КОДА”. Комбинация клавиш CTRL +W, D покажет окно определения кода.
if (e.Item.ItemType == ListItemType.Item ) { //Your code here. }
Если вы установите курсор на ListItemType и нажмете комбинацию клавиш вы увидите окно как на рисунке ниже.
8. Оператор Null Coalescing
Оператор Null Coalescing позволяет коротко записать сравнение значения с null-значением. Она записывается с помощью двойного знака вопроса (??).
Например, некоторая функция myfunction() может вернуть null значение. В таких случаях вы можете использовать данный оператор для быстрой проверки на null-значение и заменой его на альтернативное значение (не null):
int myExpectedValueIfNull = 10; int expectedValue = myfunction() ?? myExpectedValueIfNull
9. Ярлык для использования определения (Statement)
Ctrl и “.” откроет окно с возможными вариантами использования определения. Используйте стрелки для выбора. Нажмите Enter. Вуаля! Используемое решение добавлено!
10. Нудачное слияние наборов данных DataSet
Была ли у Вас ситуация, когда вы не могли понять, почему слияние двух DataSet заканчивалась провалом? Существует выход из положения.
Конечно, вы можете использовать try-catch для обработки исключений. Но посмотрите специфический код, который определяет точную причину ошибки.
StringBuilder error Messages = new StringBuilder(); try { DataSet dataSet1 = populateDataSet(1); DataSet dataSet2 = populateDataSet(2); dataset1.Merge(dataset2); } catch (System.Data.DataException de) { foreach (DataTable myTable in dataSet1.Tables) { foreach (DataRow myRow in myTable.GetErrors()) { foreach (DataColumn myColumn in myRow.GetColumnsInError()) { // цикл по каждому столбцу в строке, которая вызвала ошибку во время // связывания и вывод этой ошибки //loop through each column in the row that has caused the error //during the bind and show it. error Messages .Append(string.Format("Merge failed due to : {0}", myColumn.GetColumnError(myColumn))); } } } }