
# 修复 return 语句中的内插字符串处理 - Product Requirement Document

## Overview
- **Summary**: 修复 return 语句中内插字符串的处理问题，确保 return 语句中的内插字符串能够被正确提取和转换
- **Purpose**: 解决测试用例 `should handle special characters in string expression 7` 的失败问题，问题是 return 语句中的内插字符串没有被正确处理，导致 convertedCode 变成了错误的 "yz`-=[]" 片段
- **Target Users**: 使用 CSharpStringExtractor 工具来扫描和提取 C# 代码中字符串字面量的开发者

## Goals
- 修复 `should handle special characters in string expression 7` 测试用例的失败问题
- 确保 return 语句中的内插字符串能够被正确识别和处理
- 确保 return 语句中的内插字符串能够被正确转换为 Tr.Format 调用
- 保持所有现有测试用例的通过状态

## Non-Goals (Out of Scope)
- 改变工具的整体架构或 API 接口
- 添加超出 return 语句处理之外的新功能

## Background &amp; Context
- 当前已经修复了对象初始化器和函数调用参数中内插字符串的处理问题
- 但是 return 语句中的内插字符串还有问题，测试 7 失败
- 问题可能出在 `processStatementAndExtractValue` 方法中处理 return 语句的部分

## Functional Requirements
- **FR-1**: 工具必须正确处理 return 语句中的内插字符串
- **FR-2**: 工具必须正确提取 return 语句中的内插字符串
- **FR-3**: 工具必须正确将 return 语句中的内插字符串转换为 Tr.Format 调用

## Non-Functional Requirements
- **NFR-1**: 所有 82 个现有测试用例必须继续通过
- **NFR-2**: 修复不能降低工具的性能
- **NFR-3**: 代码必须遵循 TypeScript 语言规范

## Constraints
- **Technical**: 必须使用 TypeScript 编写，保持现有代码风格和架构
- **Dependencies**: 不添加任何新的依赖库

## Assumptions
- 问题出在 processStatementAndExtractValue 方法的 return 语句处理部分
- 用户期望的行为符合 C# 语言规范

## Acceptance Criteria

### AC-1: Return 语句内插字符串测试通过
- **Given**: 包含 return 语句和内插字符串的测试用例
- **When**: 运行 `should handle special characters in string expression 7` 测试
- **Then**: 该测试用例应该成功通过，不出现任何错误
- **Verification**: `programmatic`
- **Notes**: 确保 return 语句中的内插字符串被正确转换为 Tr.Format 调用

### AC-2: 所有现有测试继续通过
- **Given**: 完整的测试套件
- **When**: 运行所有测试用例
- **Then**: 所有 82 个现有测试用例应该继续通过
- **Verification**: `programmatic`
- **Notes**: 保持向后兼容性

## Open Questions
- 无

