Я наблюдаю курс Скотта Алана на Pluralsight о родовом языке на C#. В видео он создал новый статический класс для методов расширений, и он положил внутри этого класса публичного делегата, это выглядит следующим образом:Публичный делегат недоступен из другого класса
using System;
using System.Collections.Generic;
using System.ComponentModel;
namespace ScottAllen.Generics
{
public static class BufferExtensions
{
public delegate void Printer(object data);
public static void Dump<T>(this IBuffer<T> buffer, Printer print)
В Program.cs
я хочу использовать этот делегат, и в видео я вижу, что в методе Main
он просто пишет
Printer print...
и составители признает Printer
однако, когда я пытаюсь его, Printer
подчеркнут красным и я могу использовать его только с полным именем ScottAllen.Generics.BufferExtensions.Printer
. Я попытался очистить проект, восстановить его и так далее, но, похоже, это не проблема. Program.cs
выглядит следующим образом:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ScottAllen.Generics
{
class Program
{
static void Main(string[] args)
{
ScottAllen.Generics.BufferExtensions.Printer ..
Так в основном мой вопрос, почему на видео, он может просто использовать Printer
и я не могу и то, что нужно изменить для того, чтобы получить доступ к Printer
без использования полного имени ?
Yeap, я полностью пропустил это. Я утверждаю, что в Dusan действительно было что-то, что я забыл, и именно тот факт, что делегат определен вне класса! Теперь все в порядке. благодаря – Leron