سلام
عرض شود که امکان ارسال پیام به کاربری که chat id شو در اختیار نداشته باشین امکان پذیر نیست.
البته chat id همه کاربرارو میتونین موقع /start زدن ربات توسط کاربر بگیرید و تو بانک ذخیره کنید بعد بهشون پیام بفرستید.
پیام عمومی هم به این شکله که بجای chat id یوزرنیم ربات رو بزنید.
مثال :
await Bot.SendTextMessageAsync(message.Chat.Id, "پیام آزمایشی");
await Bot.SendTextMessageAsync("@mybot", "پیام عمومی آزمایشی");
و اما در مورد گرفتن پیام کاربرا هم روش راحتتر ساخت یه برنامه ویندوزی و گذاشتن یه حلقه یا تایمر برای دریافت اطلاعاته و روش اصولیش هم webhook و هاست و.. .
البته آموزش ساختش تو این مطلب نمیگنجه اما نمونه هارو میتونید از لینک زیر دریافت و استفاده کنید.
کتابخانه پیشنهادی خود تلگرام برای سی شارپ Telegram.bot هست که مثال های خوبی هم داره.