Is it possible to split my C # class into multiple files?

I have a class that looks like this:

public static class ReferenceData { public static IEnumerable<SelectListItem> GetAnswerType() { return new[] { new SelectListItem { Value = "1", Text = "1 answer" }, new SelectListItem { Value = "2", Text = "2 answers" }, new SelectListItem { Value = "3", Text = "3 answers" } }; } public static IEnumerable<SelectListItem> GetDatastore() { return new[] { new SelectListItem { Value = "DEV", Text = "Development" }, new SelectListItem { Value = "DC1", Text = "Production" } }; } public static string GetDatastoreText(string datastoreValue) { return GetDatastore().Single(s => s.Value == datastoreValue).Text; } public static string GetDatastoreValue(string datastoreText) { return GetDatastore().Single(s => s.Text == datastoreText).Value; } // Lots more here // Lots more here } 

There is much more than I did not show above.

Currently, all class information is in a single file. However, I would like to split it into several files. Is there a way to distribute the contents of the ReferenceData class to multiple files?

+7
source share
3 answers

Yes, specify the partial keyword in the class declaration in each file where you do it.

http://msdn.microsoft.com/en-us/library/wa80x488.aspx

+12
source

Yes, you can use partial classes . This allows you to split a class into multiple files.

File 1:

 public static partial class ReferenceData { /* some methods */ } 

File 2:

 public static partial class ReferenceData { /* some more methods */ } 

Use this feature carefully. Excessive use may make code difficult to read.

+19
source

Yes, you can, of course, just use the partial keyword before the keyword in all ads. for example, make 4 classes in different files (but in the same namespace) as follows:

File1.css

 public static partial class ReferenceData { public static IEnumerable<SelectListItem> GetAnswerType() { return new[] { new SelectListItem { Value = "1", Text = "1 answer" }, new SelectListItem { Value = "2", Text = "2 answers" }, new SelectListItem { Value = "3", Text = "3 answers" } }; } 

}

File2.cs

 public static partial class ReferenceData { public static IEnumerable<SelectListItem> GetDatastore() { return new[] { new SelectListItem { Value = "DEV", Text = "Development" }, new SelectListItem { Value = "DC1", Text = "Production" } }; } 

}

File3.cs

 public static partial class ReferenceData { public static string GetDatastoreText(string datastoreValue) { return GetDatastore().Single(s => s.Value == datastoreValue).Text; } public static string GetDatastoreValue(string datastoreText) { return GetDatastore().Single(s => s.Text == datastoreText).Value; } 

}

File4.cs

 public static partial class ReferenceData { // Lots more here // Lots more here 

}

0
source

All Articles