Loading...
Dimitar.Magaranov avatar Dimitar.Magaranov 4 Точки

Проблем с имплементиране на интерфейс

Здравейте! Решавам задачата от C# OOP Exam - 15 Dec 2019. Някой да се е сблъсквал с подобен проблем и да е намерил решениието му? При опит да имплементирам интерфейс ми излиза следния error:

System.NullReferenceException : Object reference not set to an instance of an object.
   at Microsoft.CodeAnalysis.CSharp.Extensions.ITypeSymbolExtensions.GenerateTypeSyntax(INamespaceOrTypeSymbol symbol,Boolean nameSyntax,Boolean allowVar)
   at Microsoft.CodeAnalysis.CSharp.CodeGeneration.CSharpSyntaxGenerator.TypeExpression(ITypeSymbol typeSymbol)
   at Microsoft.CodeAnalysis.Editing.SyntaxGenerator.TypeExpression(ITypeSymbol typeSymbol,Boolean addImport)
   at Microsoft.CodeAnalysis.Shared.Extensions.ICodeDefinitionFactoryExtensions.CreateThrowNotImplementedStatement(SyntaxGenerator codeDefinitionFactory,Compilation compilation)
   at Microsoft.CodeAnalysis.ImplementInterface.AbstractImplementInterfaceService.ImplementInterfaceCodeAction.GetGetAccessorStatements(Compilation compilation,IPropertySymbol property,Boolean generateAbstractly,ImplementTypePropertyGenerationBehavior propertyGenerationBehavior,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.ImplementInterface.AbstractImplementInterfaceService.ImplementInterfaceCodeAction.GenerateGetAccessor(Compilation compilation,IPropertySymbol property,Accessibility accessibility,Boolean generateAbstractly,Boolean useExplicitInterfaceSymbol,ImplementTypePropertyGenerationBehavior propertyGenerationBehavior,INamedTypeSymbol[] attributesToRemove,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.ImplementInterface.AbstractImplementInterfaceService.ImplementInterfaceCodeAction.GenerateProperty(Compilation compilation,IPropertySymbol property,Accessibility accessibility,DeclarationModifiers modifiers,Boolean generateAbstractly,Boolean useExplicitInterfaceSymbol,String memberName,ImplementTypePropertyGenerationBehavior propertyGenerationBehavior,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.ImplementInterface.AbstractImplementInterfaceService.ImplementInterfaceCodeAction.GenerateMember(Compilation compilation,ISymbol member,String memberName,Boolean generateInvisibly,Boolean generateAbstractly,Boolean addNew,Boolean addUnsafe,ImplementTypePropertyGenerationBehavior propertyGenerationBehavior,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.ImplementInterface.AbstractImplementInterfaceService.ImplementInterfaceCodeAction.GenerateMember(Compilation compilation,ISymbol member,List`1 implementedVisibleMembers,ImplementTypePropertyGenerationBehavior propertyGenerationBehavior,CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.ImplementInterface.AbstractImplementInterfaceService.ImplementInterfaceCodeAction.GenerateMembers(Compilation compilation,ImmutableArray`1 unimplementedMembers,ImplementTypePropertyGenerationBehavior propertyGenerationBehavior,CancellationToken cancellationToken)
   at async Microsoft.CodeAnalysis.ImplementInterface.AbstractImplementInterfaceService.ImplementInterfaceCodeAction.GetUpdatedDocumentAsync(<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.CodeActions.CodeAction.GetChangedSolutionAsync(<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.CodeActions.CodeAction.ComputeOperationsAsync(<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.CodeActions.CodeAction.GetPreviewOperationsAsync(<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.Editor.Implementation.Suggestions.SuggestedAction.GetPreviewResultAsync(<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.Editor.Implementation.Suggestions.SuggestedActionWithNestedFlavors.<>c__DisplayClass11_0.<GetPreviewAsync>b__0(<Unknown Parameters>)
   at async Microsoft.CodeAnalysis.Extensions.IExtensionManagerExtensions.PerformFunctionAsync[T](<Unknown Parameters>)
   at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)

Тагове:
0
Module: C# Advanced
Jordan_Dobrev12 avatar Jordan_Dobrev12 336 Точки

Ще може ли да споделиш малко повече какво точно правиш, защото не ми става много ясно от expcetion message-a.

Като се опиташ да имплементираш дадения интерфейс Visual Studio-то не ти ли генерира пропъртитата и методите, които са дефинирани в интерфейса ?

Това ми беше практическия изпит, когато си карах ООП-то, имам 252 точки на него, ако искаш може да погледнеш, за да се ориентираш - https://github.com/YordanDobrev97/SoftUni/tree/master/C%23%20Advanced/C%23%20OPP/27.Practical%20Exam/01.%20Structure_Skeleton/AquaShop

 

0
nickwork avatar nickwork 657 Точки

Грешката е NullReference..прегледай дали навсякъде инициализираш колекциите си в конструктора. Според мен искаш да вкараш обект в някой лист, който не е създаден

0
Dimitar.Magaranov avatar Dimitar.Magaranov 4 Точки

Благодаря за отговорите! Проблемът беше решен като му зададох в Properties на солюшъна Target Framework. Беше празно полето. Донякъде глупава грешка, но не знам в скелета защо не го задават по default...

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.