Laden...

Regions, eine Hilfe, Code übersichtlich zu halten

Erstellt von unclesam vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.945 Views
U
unclesam Themenstarter:in
237 Beiträge seit 2007
vor 15 Jahren
Regions, eine Hilfe, Code übersichtlich zu halten

Dieser Thread ist als Artikel zu verstehen und beinhaltet keine Fragen zum Thema Regions.

**
Regions,
eine Hilfe, Code übersichtlich zu halten**

Code kann schnell unübersichtlich werden. Mal fügt man hier in einer Klasse eine Methode ein, dort ein paar Variablen.
Lediglich IntelliSense behält den Überblick.
Um diesem Missstand Abhilfe zu verschaffen, kann man "Regions" verwenden. Solche Regions
können als Codeblöcke verstanden werden. Das auf- und zuklappen von Regions ist bereits von Methoden und anderen Codeblöcken bekannt.
Regions kann man aber nach Belieben benennen.
Ein kleines Beispiel zur Erstellung von Regions.

#region Regionname
public void MeineMethode(){ }
#endregion

Durch "#region" wird eine Region angefangen. Der Name dahinter wird angezeigt, wenn der Block zusammengeklappt wird.
Nun folgt der gewünschte Code. Hier muss man sich nicht auf eine Zeile wie im Beispiel beschränken, sondern kann dort beliebig viel Code "verstecken".
Am Ende folgt dann noch "#endregion" um die Region zu schließen.

Ich benutze Regions, um Variablen, Konstruktoren, Destruktor, Methoden und Attribute in jeweils einer Region zu organisieren.
Um nicht jedes mal aufs Neue bei einer Klasse die Regions zu tippen, kann man die Klassentemplates anpassen, sodass automatisch nach eigenen Einstellungen die Regions erstellt werden.
Für die Erstellung von Klassen über die Projektmappe, muss man folgende Datei ändern:

{root}:{Installationspfad}\Microsoft Visual Studio 8\Common7\IDE\ItemTemplatesCache\CSharp\1031\Class.zip\Class.cs


using System;
using System.Collections.Generic;
using System.Text;

namespace $rootnamespace$
{
	class $safeitemrootname$
	{
	#region Variablen
	#endregion
	
	#region Konstruktoren
	public $safeitemrootname$(){
	
	}
	#endregion
	
	#region Destruktor
	~$safeitemrootname$(){
	
	}
	#endregion
	
	#region Methoden
	#endregion
	
	#region Attribute
	#endregion
	}
}

Bei jeder Erstellung einer Klasse werden nun direkt die Regions mit passendem Konstruktor/Destruktor erstellt.

Wenn man über die Codevervollständigung eine Klasse erstellt, müsst ihr folgende Datei ändern:

{root}:{Installationspfad}\Microsoft Visual Studio 8\VC#\Snippets\1031\Visual C#\class.snippet


<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
	<CodeSnippet Format="1.0.0">
		<Header>
			<Title>class</Title>
			<Shortcut>class</Shortcut>
			<Description>Codeausschnitt für Klasse</Description>
			<Author>Microsoft Corporation</Author>
			<SnippetTypes>
				<SnippetType>Expansion</SnippetType>
				<SnippetType>SurroundsWith</SnippetType>
			</SnippetTypes>
		</Header>
		<Snippet>
			<Declarations>
				<Literal>
					<ID>name</ID>
					<ToolTip>Klassenname</ToolTip>
					<Default>MyClass</Default>
				</Literal>
			</Declarations>
			<Code Language="csharp"><![CDATA[class $name$
	{
  #region Variablen
  #endregion
  
  #region Konstruktoren
  public $name$()
  {
  
  }
  #endregion
  
  #region Destruktor
  ~$name$()
  {
  
  }
  
  #region Methoden
  #endregion
  
  #region Attribute
  #endregion
		$selected$$end$
	}]]>
			</Code>
		</Snippet>
	</CodeSnippet>
</CodeSnippets>

in Wort zur Codevervollständigung:
Wenn man in Visual Studio Code schreibt, greift IntelliSense direkt und schlägt bekannte Begriffe vor. Wenn man nun "cla" schreibt, wird "class" vorgeschlagen. Drückt man 2x TAB, wird ein Snippet eingefügt. Wenn ihr wie oben beschrieben das Snippet geändert habt, wird nun die Klasse mit den Regions eingefügt. Man muss lediglich den Klassennamen vergeben und mit <Enter> bestätigen.

Den Artikel konnte ich nur in VS2005 testen.

Vorschläge für Erweiterungen des Artikels sind erwünscht. Zum Beispiel wäre es auch interessant zu wissen wie sowas in anderen IDEs geht.
Fehler bitte auch melden.

heute code ich, morgen debug ich und übermorgen cast ich die königin auf int

3.511 Beiträge seit 2005
vor 15 Jahren

Hallo,

schau dir mal Regionerate an. Ein Tool, was ich nicht mehr weggebe.

Wobei das keinerlei Kritik an dein Artikel ist, es ist nur ein Hinweis.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

S
324 Beiträge seit 2007
vor 15 Jahren

Man kann übrigens auch eigene Snippets erstellen, welche man dann über "Extras->Codeauschnits-Manager" importieren kann.
Diese werden im intellisense auch sofort angezeigt.

Man braucht nicht die "Basis-Snippets" kaputt-Editieren - treu anch dem Motto "Lieber erstmal ableiten" 😉