Что-то я не догоняю..... Как я понял, конечная цель — не писать слово "stringArgument" 2 раза (примерно как сделано в C с командой препроцессора ##). В твоем решении это слово все-равно приходится писать 2 раза.
ИМХО правильный подход — это писать что-то типа "Assert.CheckNotNull(expr)" и иметь пост-билд степ, который будет эмитить в бинарник вызов
"Assert.CheckNotNull(expr, "expr", file, linenumber)"
С уважением, Евгений
JetBrains, Inc. "Develop with pleasure!"