Mã VB.NET sau hoạt động:Tại sao mã của tôi biên dịch trong VB.NET nhưng tương đương trong C# không
Dim request As Model.LearnerLogbookReportRequest = New Model.LearnerLogbookReportRequest
request.LearnerIdentityID = Convert.ToInt32(Session("identityID"))
request.EntryVersion = LearnerLogbookEntryVersion.Full
Dim reportRequestService As IReportRequestService = ServiceFactory.GetReportRequestService(ServiceInvoker.LearnerLogbook)
reportRequestservice.SaveRequest(request)
Mã C# sau thất bại trong việc biên dịch:
LearnerLogbookReportRequest request = new LearnerLogbookReportRequest();
request.LearnerIdentityID = theLearner.ID;
request.EntryVersion = LearnerLogbookEntryVersion.Full;
IReportRequestService reportRequestService = ServiceFactory.GetReportRequestService(ServiceInvoker.LearnerLogbook);
reportRequestService.SaveRequest(ref request);
Các LearnerLogbookReportRequest được khai báo là:
Public Class LearnerLogbookReportRequest
Inherits AbstractReportRequest
Lỗi:
Error 11 Argument 1: cannot convert from 'ref RACQ.ReportService.Common.Model.LearnerLogbookReportRequest' to 'ref RACQ.ReportService.Common.Model.AbstractReportRequest' C:\p4projects\WEB_DEVELOPMENT\SECURE_ASPX\main-dev-codelines\LogbookSolution-DR6535\RACQ.Logbook.Web\Restful\SendLogbook.cs 64 50 RACQ.Logbook.Web
Tại sao phiên bản C# không biên dịch được?
+1 - Tôi đã đề xuất trên Meta rằng các áp phích mới cho thẻ VB.NET được đề xuất để kiểm tra Cài đặt tùy chọn nghiêm ngặt của chúng http://meta.stackexchange.com/questions/144007/inform-new-posters-tagging-vb -net-to-check-option-strict-setting nhưng nó đã được bình chọn. Tuy nhiên, tôi đã thêm ghi chú vào Tag Wiki cho giá trị của nó. Cài đặt này thực sự phải được bật theo mặc định. –