首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AssemblyInfo文件中的错误

AssemblyInfo文件中的错误
EN

Stack Overflow用户
提问于 2011-12-01 22:02:23
回答 1查看 108关注 0票数 0

我得到错误"Error 1(E4) "end." or implementation section members (types or methods) expected.

在互联网上我找不到关于这个错误的信息。

由于AssemblyInfo.pas文件的以下这一行,我得到了这个错误:

代码语言:javascript
复制
Implementation
    SomeMethod();
end.

我在Delphi Prism工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-01 22:57:40

这在implementation中是无效的。

Pascal ( Delphi Prism的松散基础)单元由几个部分组成。interface部分提供与C/C++头文件相同的功能;它向代码单元的用户公开公共内容。

implementation类似于头文件公开的C/C++源文件。它是您实际实现interface单元提供的内容的地方。因此,它应该包含方法和函数的实际代码。

一个简单的例子(Delphi代码,但非常相似):

代码语言:javascript
复制
unit Test.NyClass;

interface

// Defines types and so forth that, if exposed via the proper declaration, can be seen outside
// this unit simmply by adding this unit to the uses clause of the calling code.
uses 
  SysUtils;

type
  TMyClass=class(TObject)
    FMyNumber: Integer;     // protected members (no specifier, so defaults to protected)
    FMyString: String;
  private                     
    function GetMyNumber: Integer;    // Getters
    function GetMyString: string;     
    procedure SetMyNumber(const Value: Integer);  // Setters
    procedure SetMyString(const Value: string);
  published
    property MyNumber: Integer read GetMyNumber write SetMyNumber;  // properties exposed to class users
    property MyString: string read GetMyString write SetMyString;
  end;

implementation

// Actually provides the implementation for the getters/setters, any additional methods, 
// types not needed outside this implementation section, etc.

// Optional uses clause. Add units here you only need access to in the implementation code;
// this prevents circular references ("Unit A uses Unit B which uses Unit A").
uses
  SomeOtherUnit;           

// Implementation of the getters and setters declared for the properties above. Outside code
// can't call these directly (they were declared as private), but they're called automatically
// when the corresponding property is referenced.
function TMyClass.GetMyNumber: Integer;
begin
  Result := FMyNumber;
end;

function TMyClass.GetMyString: string;
begin
  Result := FMyString;
end;

procedure TMyClass.SetMyNumber(const Value: Integer);
begin
  if FMyNumber <> Value then
    FMyNumber := Value;
end;

procedure TMyClass.SetMyString(const Value: string);
begin
  if FMyString <>  Value then
    FMyString := Value;
end;

// Optional initialization section. This is what your code is probably intending to use (if Prism
// supports it - don't have it on this machine to check).
initialization
  // Any necessary loading initialization, etc. Called when the unit is being loaded into memory,
  // so you have to be careful what you're doing here.

// Optional finalization section. This is where you do cleanup of anything  allocated in the
// initialization section.
finalization

end.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8342551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档