Легковесный C#-порт проекта Petrovich - склонение русских фамилий, имен и отчеств. См. также официальный C#-порт (NPetrovich)
Весь публичный API доступен через класс Petrovich. Функционал:
Petrovich petrovich = new Petrovich(); //при создании загружаются правила
Console.WriteLine(petrovich.Inflect("Маша", NamePart.FirstName, Case.Dative)); //"Маше"
Console.WriteLine(petrovich.Inflect("Паша", NamePart.FirstName, Case.Dative)); //"Паше"
Console.WriteLine(petrovich.Inflect("Саша", NamePart.FirstName, Case.Dative, Gender.Female)); //"Саше"
Petrovich.FIO a = petrovich.Inflect(new Petrovich.FIO() { lastName = "Пушкин", firstName = "Александр", midName = "Сергеевич" }, Case.Dative);
Console.WriteLine(a); //"Пушкину Александру Сергеевичу"
Petrovich.FIO b = petrovich.Inflect(new Petrovich.FIO() { lastName = "Воробей" }, Case.Dative, Gender.Female);
Console.WriteLine(b); //"Воробей"
Petrovich.FIO c = petrovich.Inflect(new Petrovich.FIO() { lastName = "Воробей", firstName = "Александр" }, Case.Dative);
Console.WriteLine(c); //"Воробью Александру"
Console.WriteLine(petrovich.GetGender("Пушкин", NamePart.LastName)); //Male
Console.WriteLine(petrovich.GetGender("Пушкин", null, "Сергеевич")); //Male
Console.WriteLine(petrovich.GetGender(new Petrovich.FIO() { lastName = "Воробей", firstName = "Александр" })); //Male
Зависимости времени выполнения отсутствуют — никаких внешних бибилиотек!
Case | Падеж | Характеризующий вопрос |
---|---|---|
Nominative | Именительный | Кто? Что? |
Genetive | Родительный | Кого? Чего? |
Dative | Дательный | Кому? Чему? |
Accusative | Винительный | Кого? Что? |
Instrumental | Творительный | Кем? Чем? |
Prepositional | Предложный | О ком? О чём? |