Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add DefaultInterpolatedStringHandler.Text/Clear #112171

Merged
merged 2 commits into from
Feb 26, 2025

Conversation

stephentoub
Copy link
Member

Fixes #110505

@dotnet-issue-labeler dotnet-issue-labeler bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Feb 5, 2025
Copy link

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

Copy link

Note regarding the new-api-needs-documentation label:

This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change.

@TrayanZapryanov
Copy link
Contributor

I am wondering if concerns about exposing ValueStringBuilder are not applicable here too. Soon I've copied ValueStingBuilder in our codebase and build a handler like DefaultInterpolatedStringHandler but storage was VSB. Then was asked by colleagues what will happen if they forgot about calling Clear(Dispose in our case).

@stephentoub
Copy link
Member Author

Then was asked by colleagues what will happen if they forgot about calling Clear(Dispose in our case).

An ArrayPool array may not be returned to the pool.

@stephentoub stephentoub added area-System.Runtime.CompilerServices and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Feb 5, 2025
@stephentoub stephentoub requested a review from mgravell February 19, 2025 15:58
@stephentoub stephentoub merged commit 38f7ca1 into dotnet:main Feb 26, 2025
136 of 139 checks passed
@stephentoub stephentoub deleted the interptext branch February 26, 2025 20:17
@hamarb123
Copy link
Contributor

Is there any particular reason why Text and ToString aren't marked readonly, btw?

@mgravell
Copy link
Member

mgravell commented Mar 4, 2025

@hamarb123 valid question; they probably could/should be

@stephentoub
Copy link
Member Author

Is there any particular reason why Text and ToString aren't marked readonly, btw?

@hamarb123 valid question; they probably could/should be

Lots of members could be. Why should these be? Passing around a DefaultInterpolatedStringHandler by in seems like a bad idea.

@mgravell
Copy link
Member

mgravell commented Mar 4, 2025

You're right, upon consideration; adding readonly is only useful on a flavor of usage that actively does not apply to this type.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[API Proposal]: DefaultInterpolatedStringHandler - expose buffer and reset
4 participants