- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Found 2628 Articles for Csharp
308 Views
Clients should not be forced to depend upon interfaces that they don't use.The Interface Segregation Principle states that clients should not be forced to implement interfaces they don't use.Instead of one fat interface many small interfaces are preferred based on groups of methods, each one serving one submoduleBefore Interface SegregationExamplepublic interface IProduct { int ID { get; set; } double Weight { get; set; } int Stock { get; set; } int Inseam { get; set; } int WaistSize { get; set; } } public class Jeans : IProduct { public int ID { ... Read More
112 Views
The Facade pattern is a simple structure laid over a more complex structure.The ParticipantsThe Subsystems are any classes or objects which implement functionality but can be "wrapped" or "covered" by the Facade to simplify an interface.The Facade is the layer of abstraction above the Subsystems, and knows which Subsystem to delegate appropriate work to.The Facade pattern is so general that it applies to almost every major app especially those where I couldn't refactor or modify pieces of said apps for various reasons.Examplepublic class HomeFacade { LightsFacade light; MusicSystemFacade musicSystem; AcFacade ac; public HomeFacade() { ... Read More
241 Views
Derived types must be completely substitutable for their base types.Definition:We should be able to treat a child class as though it were the parent class. Essentially this means that all derived classes should retain the functionality of their parent class and cannot replace any functionality the parent provides.Before Liskov Substitutionpublic class Ellipse { public double MajorAxis { get; set; } public double MinorAxis { get; set; } public virtual void SetMajorAxis(double majorAxis){ this.MajorAxis = majorAxis; } public virtual void SetMinorAxis(double minorAxis){ this.MajorAxis = minorAxis; } public ... Read More
1K+ Views
The sealed keyword means that the class cannot be inherited from. Declaring constructors private means that instances of the class cannot be created.You can have a base class with a private constructor, but still inherit from that base class, define some public constructors, and effectively instantiate that base class.Constructors are not inherited (so the derived class won't have all private constructors just because the base class does), and that derived classes always call the base class constructors first.Marking the class sealed prevents someone from trivially working around your carefully-constructed singleton class because it keeps someone from inheriting from the class.Examplestatic ... Read More
1K+ Views
To get the files, C# provides a method Directory.GetFilesDirectory.GetFiles returns the names of all the files (including their paths) that match the specified search pattern, and optionally searches subdirectories.In the below example * is matches Zero or more characters in that position.SearchOption TopDirectoryOnly. Searches only the top directoriesSearchOption AllDirectories .Searches all the top directories and sub directoriesFileInfo gets the file information like Length, nameExample 1static void Main (string[] args) { string rootPath = @"C:\Users\Koushik\Desktop\TestFolder"; var files = Directory.GetFiles(rootPath, "*.*", SearchOption.AllDirectories); foreach (string file in files) { Console.WriteLine(file); } Console.ReadLine (); }OutputC:\Users\Koushik\Desktop\TestFolder\TestFolderMain\TestFolderMain.txt ... Read More
2K+ Views
We should use an IDisposable design pattern (or Dispose Pattern) when we need to dispose of unmanaged objects.For implementing the IDisposable design pattern, the class which deals with unmanaged objects directly or indirectly should implement the IDisposable interface.And implement the method Dispose declared inside of the IDisposable interface. We do not directly deal with unmanaged objects. But we deal with managed classes, which deals directly with unmanaged objects. For example, File handlers, connection string, HTTP streams, etc.Important aspect of this pattern is that it makes easier for inherited classes to follow the IDisposable design pattern. And it is because of ... Read More
113 Views
The null object pattern helps us to write a clean code avoiding null checks where ever possible. Using the null object pattern, the callers do not have to care whether they have a null object or a real object. It is not possible to implement null object pattern in every scenario. Sometimes, it is likely to return a null reference and perform some null checks.Examplestatic class Program{ static void Main(string[] args){ Console.ReadLine(); } public static IShape GetMobileByName(string mobileName){ IShape mobile = NullShape.Instance; switch (mobileName){ ... Read More
691 Views
These are used to import namespaces (or create aliases for namespaces or types).These go at the top of the file, before any declarations.using System; using System.IO; using WinForms = global::System.Windows.Forms; using WinButton = WinForms::Button;The using statement ensures that Dispose() is called even if an exception occurs when you are creating objects and calling methods, properties and so on. Dispose() is a method that is present in the IDisposable interface that helps to implement custom Garbage Collection. In other words, if we are doing some database operation (Insert, Update, Delete) but somehow an exception occurs, then here the using statement closes ... Read More
361 Views
To get the directories C# provides a method Directory.GetDirectoriesDirectory.GetDirectories returns the names of the subdirectories (including their paths) that match the specified search pattern in the specified directory, and optionally searches subdirectories.To get the files, C# provides a method Directory.GetFilesDirectory.GetFiles returns the names of all the files (including their paths) that match the specified search pattern, and optionally searches subdirectoriesTo get the file length , C# provides a property LengthExamplestatic void Main(string[] args) { string rootPath = @"C:\Users\Koushik\Desktop\TestFolder"; var files = Directory.GetFiles(rootPath, "*.*", SearchOption.AllDirectories); foreach (string file in files) { long size = ... Read More
765 Views
In synchronous C# code, the exceptions are propagated up the call stack until they reach an appropriate catch block that can handle the exception. However, exception handling in asynchronous methods is not as straightforward.An asynchronous method in C# can have three types of return value: void, Task, and Task. When an exception occurs in an async method that has a return type of Task or Task, the exception object is wrapped in an instance of AggregateException and attached to the Task object.If multiple exceptions are thrown, all of them are stored in the Task object.Example 1static async Task Main(string[] args) ... Read More