#c# #.net #compiler-errors
#c# #.net #ошибки компилятора
Вопрос:
Я получаю следующую ошибку при попытке сборки:
Не содержит определения или метода расширения
У меня есть класс, подобный этому:
[Serializable]
public class JobFile
{
private FileInfo mFileInfo;
private string mJobNumber = string.Empty;
private string mBaseJobNumber = string.Empty;
private Guid mDocumentTytpeid = Guid.Empty;
public string DocumentTypeDescription
{
get
{
string description;
DocumentType DocType;
DocType = DocumentType.GetDocType(DocumentTypeCode);
if (DocType.Code == null)
description = "Unknown";
else
description = DocType.Description;
return description;
}
}
public Guid DocumentTypeID
{
get
{
DocumentType DocType;
DocType = DocumentType.GetDocType(DocumentTypeCode);
if (DocType.Code == null)
mDocumentTytpeid = Guid.Empty;
else
mDocumentTytpeid = DocType.Id;
return mDocumentTytpeid;
}
}
Теперь я пытаюсь получить значение Documenttypeid в моем другом классе следующим образом:
foreach (FileInfo fi in files)
{
JobFile jf = null;
jf = new JobFile(ref fi);
f.DocumentTypeId = jf.DocumentTypeID; //<-- error is here
}
Кто-нибудь знает, что может быть не так и как это исправить?
Спасибо.
Комментарии:
1. в
f.DocumentTypeId
, какой типf
?2. Где
f
объявлено в цикле? Разве это не должно бытьfi
?3. Пожалуйста, опубликуйте полный текст ошибки. И отформатируйте свой код самостоятельно, он был нечитаемым.
4. Извините, F — это определение другого класса с именем file.cs Я хочу установить, что Documenttypeid = независимо от jf.documentypeid.
5. Нам нужно увидеть этот file.cs с определением типа, которому соответствует F.
Ответ №1:
В сообщении об ошибке очень ясно указано, что не так. Вы пытаетесь использовать свойство, которое не существует, и видите, как ошибка возникает в этой строке:
f.DocumentTypeId = jf.DocumentTypeID;
Это может быть только одна из двух вещей:
f
не существуетf.DocumentTypeId
не существует.jf.DocumentTypeID
не существует
Честно говоря, я бы проверил, чтобы убедиться, что этого f.DocumentTypeId
не должно быть f.DocumentTypeID
. C # придирчив к подобным вещам, и небольшая ошибка, подобная этой, может вызвать ошибку, которую вы получаете.
Ответ №2:
Проблема в f.DocumentTypeId
.
Предполагая, что это также JobFile
, это будет f.DocumentTypeID
(обратите внимание на идентификатор, а не на Id). C # чувствителен к регистру. Кроме того, существует только средство доступа к get
свойству, а не set
.
Если f
это какой-то другой тип, покажите нам код.
Комментарии:
1. Спасибо, f на самом деле другой класс, извините, я не вставил эту часть туда, я пытался быть кратким. Я устанавливаю переменные в классе file.cs (f), чтобы выполнить вставку там.
2. Если тип
f
являетсяJobFile
, то мой ответ должен решить вашу проблему.3. его не f имеет тип file ( Library.File. Файл f = новая библиотека.File. File();)
4. Компилятор сообщает вам, что
Library.File.File
не содержит определения дляDocumentTypeId
. Не зная, что вы ожидаете, и не зная, каково определениеLibrary.File.File
, мы не можем помочь дальше.5. @ElPollo: Я согласен с Джорджем. Ошибка очень понятна; свойство, которое вы пытаетесь получить или установить, не существует.