Here is an example of using the new tuples in Version 8 of the C# compiler. I've tried to use these tuples in a way which makes them as readable as possible.
public class SqlVersionFinder { public (string version, string date, string copyright, string edition) GetSqlVersion(string server = @".\") { // Use named arguments so that the tuple is easy to read and maintain var res = (version: "", date: "", copyright: "", edition: ""); using (var connection = new SqlConnection(String.Format( "Server={0};Database=master;Trusted_Connection=True;", server))) { connection.Open(); var sqlResult = ""; using (var command = connection.CreateCommand()) { command.CommandText = " SELECT @@VERSION"; sqlResult = command.ExecuteScalar() as string ?? ""; } if (!string.IsNullOrEmpty(sqlResult)) { var versionInfo = sqlResult.Split(new[] { "\n\t" }, System.StringSplitOptions.None); if (versionInfo != null && versionInfo.Length >= 4) { res.version = versionInfo[0] ?? ""; res.date = versionInfo[1] ?? ""; res.copyright = versionInfo[2] ?? ""; res.edition = versionInfo[3] ?? ""; } } } return res; } }Here is the test code (from a Console app) that retrieves Sql Server Version information
SqlVersionFinder sqlVersionFinder = new SqlVersionFinder(); var res = sqlVersionFinder.GetSqlVersion(); Console.WriteLine("Version: " + res.version); Console.WriteLine("Date: " + res.date); Console.WriteLine("Copyright: " + res.copyright); Console.WriteLine("Edition: " + res.edition);Output looks like this:
Version: Microsoft SQL Server 2016 (RTM) - 13.0.1601.5 (X64)
Date: Apr 29 2016 23:23:58
Copyright: Copyright (c) Microsoft Corporation
Edition: Standard Edition (64-bit) on Windows 10 Enterprise 6.3