# 修复 return 语句的 originalIndex 计算 - Product Requirement Document

## Overview

### **Summary**: 修复 CSharpStringExtractor 中处理 return 语句时 originalIndex 的计算错误问题

### **Purpose**: 确保提取的字符串片段的 originalIndex 正确对应代码中实际位置

### **Target Users**: 使用 CSharpStringExtractor 的开发者

### Goals

### 修复 "should handle return string" 测试用例失败的问题

### 确保 originalIndex = code.indexOf(originalCode) 的正确性

### Non-Goals (Out of Scope)

* 不修改其他功能的实现逻辑

* 不添加新的测试用例

## Background & Context

当前测试用例 "should handle return string" 失败，原因是 originalIndex 的值不正确（期望 130，实际 199）。问题出在 extractValueExpression 方法中处理 return 语句时，没有像处理赋值语句那样在 fullCode 中查找实际的 valueExpression 位置。

## Functional Requirements

* **FR-1**: 对于 return 语句，正确计算 valueExpression 的 originalIndex

* **FR-2**: originalIndex 应该等于 fullCode.indexOf(originalCode)

## Non-Functional Requirements

* **NFR-1**: 所有现有测试用例必须通过

## Constraints

* **Technical**: 使用 TypeScript 语言，遵循现有代码风格

* **Business**: 不影响现有功能

## Assumptions

* 测试用例的预期结果是正确的

* 其他语句类型（如赋值语句）的 originalIndex 计算是正确的

## Acceptance Criteria

### AC-1: return 语句的 originalIndex 正确

* **Given**: 包含 return 语句的 C# 代码

* **When**: extractStrings 方法被调用

* **Then**: 返回的 snippet 的 originalIndex 应该等于 code.indexOf(originalCode)

* **Verification**: `programmatic`

### AC-2: 所有现有测试通过

* **Given**: 修改后的代码

* **When**: 运行完整测试套件

* **Then**: 所有测试用例都应该通过

* **Verification**: `programmatic`

## Open Questions

* 无

