David_Wimbley
Итак, во-первых, вам не нужно вводить пространство имен, так как это в конечном итоге будет оператор using в верхней части вашего кода.
Например, это должно быть допустимое использование для вашего формата.
using MyNameSpace;
namespace MyProgram
{
public class Program
{
public void Main(string[] args)
{
var helper = new DataHelpers();
helper.SysnamePath("");
}
}
}
Однако вы упомянули, что хотели бы сделать это как метод расширения, и в этом случае вам нужно пометить свой класс и метод как статические. Так что это будет выглядеть примерно так
namespace MyNamespace
{
public static class DataHelpers
{
public static string SysnamePath ( string db , string schema , string table )
{
return "[ " + db + " ].[ " + schema + " ].[ " + table + " ]";
}
}
}
Однако ваш метод расширения должен ссылаться на переменную, которую он расширяет с помощью
this
ключевое слово. Так что ваш
SysnamePath
метод должен использовать 1 переменную с
this
ключевое слово.
Так что, может быть, вы бы реализовали его примерно так
namespace MyNamespace
{
public static class DataHelpers
{
public static string SysnamePath ( this string db , string schema , string table )
{
return "[ " + db + " ].[ " + schema + " ].[ " + table + " ]";
}
}
}
Так что теперь ваше использование может выглядеть примерно так
using MyNameSpace;
namespace MyProgram
{
public class Program
{
public void Main(string[] args)
{
var myDb = "Databasename";
//SysnamePath is now an extension method for types of "string"
myDb.SysnamePath("dbo", "my table name");
}
}
}
Я бы предостерег, что не расширяйте метод-анизинг всех вещей, так как это может быть трудно понять правильное использование, если они используются на общих типах, таких как string...in мое мнение, конечно.
[no name]
Здесь есть очень важные моменты. Мне следовало бы упомянуть, что я сразу же отказался от метода расширения. Чего мне не хватало, так это того, что я мог бы просто сделать его статическим методом. Не знаю, почему мне это не пришло в голову! Спасибо, что откликнулись!